UWP - 如何保存帧回栈和当前页面?
UWP - How to save frame backstack and current page?
嗨,我有这个层次结构
应用程序(根框架)
- 登录页面
- 主要Shell(InnerFrame)
- 包含实体 1 的列表页
- 包含实体 2 的列表页
- 实体 1 (InnerFrame2) 的详细信息页面
- 子页面 1-1
- 子页面 1-2
- 实体 2 (InnerFrame3) 的详细信息页面
- 子页面 2-1
- 子页面 2-1
而且我想正确处理后退按钮。在内部框架中的页面之间导航是可以的,但是当我从 "List Page with entities 2" 到 "Detail page for entity 2" 然后返回时,我重新创建了 MainShell 并忘记了 InnerFrames BackStack 并打开了页面(应该是"List Page with entities 2")
有什么优雅的方法来处理这个问题吗?例如当 navigatedFrom at MainShell 发生时保存 InnerFrames 历史和当前页面?
你可以试试Prism Framework, here is a lifecycle managing example.
简而言之,当 OnAppSuspended
和 OnAppResumed
事件被调用时,Prism 提供 SessionStateService
来管理视图恢复。
此外,Prism NavigationService
传递 NavigatedToEventArgs e, NavigatedFromEventArgs e, Dictionary<string, object> viewModelState
参数,您的页面行为可以使用此参数在 OnNavigatedTo
和 OnNavigatedFrom
中覆盖。
我找到了我需要的东西。 Frame 对象有 SetNavigationState(string) 和 GetNavigationState() 方法。还是谢谢
嗨,我有这个层次结构
应用程序(根框架)
- 登录页面
- 主要Shell(InnerFrame)
- 包含实体 1 的列表页
- 包含实体 2 的列表页
- 实体 1 (InnerFrame2) 的详细信息页面
- 子页面 1-1
- 子页面 1-2
- 实体 2 (InnerFrame3) 的详细信息页面
- 子页面 2-1
- 子页面 2-1
而且我想正确处理后退按钮。在内部框架中的页面之间导航是可以的,但是当我从 "List Page with entities 2" 到 "Detail page for entity 2" 然后返回时,我重新创建了 MainShell 并忘记了 InnerFrames BackStack 并打开了页面(应该是"List Page with entities 2")
有什么优雅的方法来处理这个问题吗?例如当 navigatedFrom at MainShell 发生时保存 InnerFrames 历史和当前页面?
你可以试试Prism Framework, here is a lifecycle managing example.
简而言之,当 OnAppSuspended
和 OnAppResumed
事件被调用时,Prism 提供 SessionStateService
来管理视图恢复。
此外,Prism NavigationService
传递 NavigatedToEventArgs e, NavigatedFromEventArgs e, Dictionary<string, object> viewModelState
参数,您的页面行为可以使用此参数在 OnNavigatedTo
和 OnNavigatedFrom
中覆盖。
我找到了我需要的东西。 Frame 对象有 SetNavigationState(string) 和 GetNavigationState() 方法。还是谢谢