简体   繁体   English

UWP-如何保存框架后退和当前页面?

[英]UWP - How to save frame backstack and current page?

Hi I have this hierarchy 嗨,我有这个层次结构

App (RootFrame) 应用程式(RootFrame)

  • Login Page 登录页面
  • Main Shell (InnerFrame) 主机壳(InnerFrame)
    • List Page with entities 1 实体列表页1
    • List Page with entities 2 实体列表页面2
  • Detail Page for entity 1 (InnerFrame2) 实体1(InnerFrame2)的详细信息页面
    • subpage 1-1 1-1页
    • subpage 1-2 第1-2页
  • Detail Page for entity 2 (InnerFrame3) 实体2的详细信息页面(InnerFrame3)
    • subpage 2-1 2-1页
    • subpage 2-1 2-1页

And I want to handle Back button correctly. 而且我想正确处理“后退”按钮。 Navigating between pages in inner frames is ok, but when I go for example from "List Page with entities 2" to "Detail page for entity 2" and then back, MainShell i recreated and forgets the InnerFrames BackStack and opened Page(should be "List Page with entities 2") 在内部框架中的页面之间导航是可以的,但是例如当我从“具有实体2的列表页面”转到“实体2的详细信息页面”,然后返回时,我重新创建了MainShell,并且忘记了InnerFrames BackStack并打开了Page(应为“具有实体2“的列表页

Is there any elegant way to handle this? 有什么优雅的方法可以解决这个问题吗? for example save InnerFrames history and current page when navigatedFrom at MainShell happens? 例如在MainShell上的navigationdFrom发生时保存InnerFrames历史记录和当前页面?

You can try Prism Framework , here is a lifecycle managing example . 您可以尝试Prism Framework ,这是一个生命周期管理示例

In a nutshell Prism provides SessionStateService to manage view restoring when OnAppSuspended and OnAppResumed events invoked. 简而言之,Prism提供了SessionStateService来管理调用OnAppSuspendedOnAppResumed事件时的视图还原。

Also Prism NavigationService passes NavigatedToEventArgs e, NavigatedFromEventArgs e, Dictionary<string, object> viewModelState parameters and your page behaviour can be overrided in OnNavigatedTo and OnNavigatedFrom using this parameters. Prism NavigationService还会传递NavigatedToEventArgs e, NavigatedFromEventArgs e, Dictionary<string, object> viewModelState参数,并且可以使用此参数在OnNavigatedToOnNavigatedFrom覆盖您的页面行为。

I found what I needed. 我找到了我所需要的。 There are SetNavigationState(string) and GetNavigationState() methods on Frame object. Frame对象上有SetNavigationState(string)和GetNavigationState()方法。 Thanks anyway 不管怎么说,还是要谢谢你

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM