导航到新视图时清除 mvvm prism 6 前向堆栈
mvvm prism 6 forward stack is cleared when navigating to new view
我对棱镜比较陌生。我有一个主要内容区域,一次显示一个视图。如果我显示一个列表视图,然后执行编辑命令以导航到当前项目的详细视图,我的导航将按预期工作。我可以返回到列表视图,然后转到详细视图。如果我返回到列表视图并编辑另一个项目,它的视图会按预期显示,但之前的详细视图现在已从转发堆栈中删除。实际查看prism代码,在执行RecordNavigation方法时,前向栈被清空。这是设计使然吗?我想让新的详细视图成为当前项目,但保留前向堆栈中的所有视图?我假设我将不得不重写 RegionNavigationJournal,但我很好奇是否遗漏了什么。
谢谢,
段
是的,这是设计使然,并且与 back/forward 导航系统完全一样。看看你最喜欢的互联网浏览器。鉴于我这样导航:
PersonLsitView -> PersonAView
然后按回,我会再次在 PersonListView 和我的前向堆栈中的 PersonAView。
现在我从 PersonListView 导航到 PersonBView。现在按下后退按钮,现在我回到了 PersonListView,除了这次前进将是 PersonBView。
让 PersonAView 成为从 PersonBView 返回后从 PersonListView 向前导航时出现的视图是没有意义的。
老实说,您想要的行为对您的用户没有任何意义。
我对棱镜比较陌生。我有一个主要内容区域,一次显示一个视图。如果我显示一个列表视图,然后执行编辑命令以导航到当前项目的详细视图,我的导航将按预期工作。我可以返回到列表视图,然后转到详细视图。如果我返回到列表视图并编辑另一个项目,它的视图会按预期显示,但之前的详细视图现在已从转发堆栈中删除。实际查看prism代码,在执行RecordNavigation方法时,前向栈被清空。这是设计使然吗?我想让新的详细视图成为当前项目,但保留前向堆栈中的所有视图?我假设我将不得不重写 RegionNavigationJournal,但我很好奇是否遗漏了什么。
谢谢,
段
是的,这是设计使然,并且与 back/forward 导航系统完全一样。看看你最喜欢的互联网浏览器。鉴于我这样导航:
PersonLsitView -> PersonAView
然后按回,我会再次在 PersonListView 和我的前向堆栈中的 PersonAView。
现在我从 PersonListView 导航到 PersonBView。现在按下后退按钮,现在我回到了 PersonListView,除了这次前进将是 PersonBView。
让 PersonAView 成为从 PersonBView 返回后从 PersonListView 向前导航时出现的视图是没有意义的。
老实说,您想要的行为对您的用户没有任何意义。