UWP - 如何保存帧后台和当前页面?

时间:2017-08-03 20:48:35

标签: c# .net uwp win-universal-app windows-10-universal

嗨,我有这个层次结构

App(RootFrame)

  • 登录页面
  • 主壳(InnerFrame)
    • 列出具有实体1的页面
    • 列出具有实体2的页面
  • 实体1的详细信息页面(InnerFrame2)
    • 子页面1-1
    • 子页面1-2
  • 实体2的详细信息页面(InnerFrame3)
    • 子页面2-1
    • 子页面2-1

我想正确处理后退按钮。在内部框架中的页面之间导航是可以的,但是当我从“具有实体2的列表页面”到“实体2的详细信息页面”然后返回时,MainShell我重新创建并忘记了InnerFrames BackStack并打开了页面(应该是“列表页面包含实体2“)

有没有优雅的方法来处理这个?例如,当在MainShell中导航时,保存InnerFrames历史记录和当前页面?

2 个答案:

答案 0 :(得分:0)

您可以尝试Prism Framework,这是一个管理example的生命周期。

简而言之,Prism提供SessionStateService来管理在调用OnAppSuspendedOnAppResumed事件时的视图恢复。

此外,Prism NavigationService传递了NavigatedToEventArgs e, NavigatedFromEventArgs e, Dictionary<string, object> viewModelState个参数,您可以使用此参数在OnNavigatedToOnNavigatedFrom中覆盖您的网页行为。

答案 1 :(得分:0)

我找到了我需要的东西。 Frame对象上有SetNavigationState(string)和GetNavigationState()方法。不管怎样,谢谢