【发布时间】:2011-12-08 14:34:57
【问题描述】:
我有一个 Windows Phone 7.5 应用程序,它使用 NavigationService.GoBack() 方法在主页(MainPage.xaml,PhoneApplicationPage)和辅助页面(Views/ModelLoad.xaml)之间进行转换,一个 PhoneApplicationPage 在主 Grid 中托管一个全景控件)。
我成功地从 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。如果我在此页面中添加一个按钮并在单击事件处理程序中调用 NavigationService.GoBack(),则 UI 会成功导航回上一页。
【问题讨论】:
-
您第一次尝试在哪里调用 NavigationService.GoBack()?
-
回调正在使用的 NavigationService 实例,它是从哪里获得的?是从 ModelLoad.xaml 传递给回调的 NavigationService 的实例吗?你有一个简单的复制应用吗?
标签: c# silverlight windows-phone-7 navigation windows-phone-7.1