【问题标题】:Best way to debug NavigationService.GoBack() problems?调试 NavigationService.GoBack() 问题的最佳方法?
【发布时间】: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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-26
    • 1970-01-01
    • 2019-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 2021-03-09
    相关资源
    最近更新 更多