【问题标题】:Windows Phone Silverlight page navigationWindows Phone Silverlight 页面导航
【发布时间】:2012-07-23 05:10:18
【问题描述】:

我有两个关于 Windows Phone 页面导航的问题:

  1. 有没有办法获取我正在导航到的页面的实例?也就是说,如果我在第一页并且想要导航到 page2 到按钮单击时,我可以在 page2 由第 1 页中的 NavigationService.Navigate("page_2_uri") 调用初始化后获取 page2 实例吗?
  2. 有什么方法可以知道我从哪个页面导航?例如,我目前在第 3 页,我想做类似的事情:如果第 3 页是从第 2 页导航的,我会这样做,否则我会这样做。

谢谢。

【问题讨论】:

    标签: c# wpf silverlight windows-phone-7


    【解决方案1】:
    1. 有没有办法获取我正在导航到的页面的实例?

    没有。

    1. 有没有办法知道我从哪个页面导航?

    是的。遍历NavigationService.BackStack

    【讨论】:

      【解决方案2】:
      1. 使用 NavigationService 在页面之间导航的想法是您不需要了解有关目的地的任何详细信息。因此,在您的示例中,直到您离开第 1 页,第 2 页才被初始化,因此第 1 页不再在范围内,并且无法对第 2 页执行任何操作。如果您想传递信息/上下文到第 2 页,id 建议使用查询参数(请参阅下一个答案)。如果你想知道导航的去向,可以覆盖OnNavigatedFrom事件,查看NavigationEventArgs的Uri属性。

      2. 我建议查看 Silverlight Page 类的 NavigationContext 属性。此属性允许您查看导航请求的 QueryString。使用这种方法,您可以使用“page_3?previous_page=2”之类的 uri 导航到第 3 页,然后从 NavigationContext 的 QueryString 中提取 previous_page 以查看您来自哪里。

      【讨论】:

      • 你忘记了前一页总是在后栈中,这是可遍历的!
      • 是的,克劳斯,这可能是识别前一页的更简单方法。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-11
      • 1970-01-01
      相关资源
      最近更新 更多