【问题标题】:Windows Phone Silverlight page navigationWindows Phone Silverlight 页面导航
【发布时间】:2012-07-23 05:10:18
【问题描述】:
我有两个关于 Windows Phone 页面导航的问题:
- 有没有办法获取我正在导航到的页面的实例?也就是说,如果我在第一页并且想要导航到 page2 到按钮单击时,我可以在 page2 由第 1 页中的
NavigationService.Navigate("page_2_uri") 调用初始化后获取 page2 实例吗?
- 有什么方法可以知道我从哪个页面导航?例如,我目前在第 3 页,我想做类似的事情:如果第 3 页是从第 2 页导航的,我会这样做,否则我会这样做。
谢谢。
【问题讨论】:
标签:
c#
wpf
silverlight
windows-phone-7
【解决方案2】:
使用 NavigationService 在页面之间导航的想法是您不需要了解有关目的地的任何详细信息。因此,在您的示例中,直到您离开第 1 页,第 2 页才被初始化,因此第 1 页不再在范围内,并且无法对第 2 页执行任何操作。如果您想传递信息/上下文到第 2 页,id 建议使用查询参数(请参阅下一个答案)。如果你想知道导航的去向,可以覆盖OnNavigatedFrom事件,查看NavigationEventArgs的Uri属性。
我建议查看 Silverlight Page 类的 NavigationContext 属性。此属性允许您查看导航请求的 QueryString。使用这种方法,您可以使用“page_3?previous_page=2”之类的 uri 导航到第 3 页,然后从 NavigationContext 的 QueryString 中提取 previous_page 以查看您来自哪里。