我有一个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会成功导航回上一页。
答案 0 :(得分:0)
确保从页面实例(具有NavigationService和上下文)内部调用它,或者如果您从应用程序中调用它,则使用CurrentFrame成员调用它。