调试NavigationService.GoBack()问题的最佳方法

本文关键字:最佳 方法 问题 NavigationService GoBack 调试 | 更新日期: 2023-09-27 18:17:06

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

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

this.NavigationService.GoBack();

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

我已经尝试使用

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

但没有显示任何不同的行为。

是否有办法调试这个问题找出导航不发生的原因?

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

调试NavigationService.GoBack()问题的最佳方法

确保从Page实例中调用它(它有一个NavigationService和context),或者如果你从App中调用它,可以使用CurrentFrame成员调用它。