UWP - 如何保存帧回栈和当前页面?

UWP - How to save frame backstack and current page?

嗨,我有这个层次结构

应用程序(根框架)

而且我想正确处理后退按钮。在内部框架中的页面之间导航是可以的,但是当我从 "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.

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

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

我找到了我需要的东西。 Frame 对象有 SetNavigationState(string) 和 GetNavigationState() 方法。还是谢谢