0

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

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

谢谢你。

4

2 回答 2

3
  1. 有没有办法获取我正在导航到的页面实例?

不。

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

是的。遍历NavigationService.BackStack

于 2012-07-22T21:10:18.087 回答
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 以查看您来自哪里。

于 2012-07-22T21:07:27.367 回答