调试NavigationService.GoBack()问题的最佳方法是什么?

时间:2011-12-08 14:34:57

标签: c# silverlight windows-phone-7 navigation windows-phone-7.1

我有一个Windows Phone 7.5应用程序,它使用 NavigationService.GoBack()方法在主页面(MainPage.xaml,PhoneApplicationPage)和辅助页面(Views / ModelLoad.xaml)之间进行转换,一个在主网格内托管Panorama控件的PhoneApplicationPage。)

我成功地从MainPage.xaml导航到ModelLoad.xaml页面。在ModelLoad.xaml(使用Live Connect SDK)中加载模型后,我调用

this.NavigationService.GoBack();

我可以在 NavigationService.Navigating()的回调中设置断点,并注意正在调用。但是,之后没有其他事情发生,没有引发NavigationFailed事件,并且UI不会更改。如果我指定一个不存在的页面的Uri,也会发生同样的情况。

我尝试过使用

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

但是没有表现出任何不同的行为。

有没有办法调试此问题以找出导航未发生的原因?

更新:它似乎与线程和焦点有关。使用 Live Connect SDK 从SkyDrive下载文件后,将从回调中调用Navigate。如果我向此页面添加一个按钮并在click事件处理程序中调用NavigationService.GoBack(),则UI会成功导航回上一页。

1 个答案:

答案 0 :(得分:0)

确保从页面实例(具有NavigationService和上下文)内部调用它,或者如果您从应用程序中调用它,则使用CurrentFrame成员调用它。