3

我有一個Windows Phone 7.5應用程序,它使用NavigationService.GoBack()方法在主頁面(MainPage.xaml,PhoneApplicationPage)和輔助頁面(Views/ModelLoad.xaml,託管Panorama的PhoneApplicationPage控制在主網格內)。調試NavigationService.GoBack()問題的最佳方法?

我成功地從MainPage.xaml導航到ModelLoad.xaml頁面。一旦模型被ModelLoad.xaml加載(使用實時連接SDK),我稱之爲

this.NavigationService.GoBack(); 

我可以設置在回調斷點NavigationService.Navigating(),請注意,被稱爲。但是,事後沒有其他事情發生,沒有NavigationFailed事件引發,並且UI不會更改。如果我指定一個不存在的頁面的URI,也會發生同樣的情況。

我曾嘗試使用

if (NavigationService.CanGoBack) this.Dispatcher(() => NavigationService.GoBack()); 

,但沒有表現出任何不同的行爲。

有沒有辦法來調試這個問題找出爲什麼導航沒有發生?

更新:它似乎與線程和焦點有關。在使用Live Connect SDK從SkyDrive下載文件後,將從回調中調用導航。如果我在此頁面上添加一個按鈕並在click事件處理程序中調用NavigationService.GoBack(),則UI成功導航回到上一頁。

+0

你在哪裏第一次嘗試調用NavigationService.GoBack()? – BigL

+0

回調正在使用的NavigationService實例,它從哪裏得到的?它是從ModelLoad.xaml傳遞給回調的NavigationService的實例嗎?你有一個簡單的repro應用程序? –

回答

0

確保您從Page實例(具有NavigationService和上下文)中調用它,或者如果您從應用程序調用它,則可以使用CurrentFrame成員調用它。