2017-03-07 53 views
0

我对棱镜颇为陌生。我有一个主要内容区域,一次显示一个视图。如果我显示一个列表视图,然后执行编辑命令导航到当前项目的详细视图,我的导航按预期工作。我可以返回到列表视图,然后转发到详细视图。如果我回到列表视图并编辑另一个项目,它的视图将按预期方式显示,但现在的前一个细节视图现在从前向堆栈中删除。实际上查看棱镜代码时,执行RecordNavigation方法时将清除前向堆栈。这是设计吗?我希望将新的详细视图作为当前项目,但保留向前堆栈中的所有视图?我假设我将不得不重写RegionNavigationJournal,但很好奇,如果有什么我失踪。mvvm棱镜6导航到新视图时清除6个正向堆栈

感谢,

回答

1

是的,这是由设计,准确的作品作为前进/后退导航系统的。看看你最喜欢的互联网浏览器。鉴于我浏览这样的:

PersonLsitView - > PersonAView

然后压回,我会在PersonListView再次与PersonAView在我前进的堆栈。

现在来自PersonListView我导航到PersonBView。现在按下后退按钮,现在我回到了PersonListView,除了这个时间前进的是PersonBView。

将PersonAView作为在从PersonBView返回后从PersonListView向前导航时出现的视图是没有意义的。

老实说,你想要的行为不会对你的用户有任何意义。

+0

嗨布赖恩:感谢您花时间回答。实际上,我仍然期望在从PersonListView向前点击时显示PersonBView,但是一旦PersonBView被重新激活,Forward按钮仍然允许你到PersonAView。这是我的第一个WPF应用程序,我试图从我平常的标签式视觉工作室类型的winform UI中摆脱出来,并在单个主要内容区域中玩耍。希望日记机制在其父(NavigateFrom)视图之后插入新视图,但保留所有先前打开的视图在前向堆栈中是否错误? – LeafsDan

+0

是的,这绝对是非正统的。该导航模式会非常混乱,而不是用户期望的。 –