【问题标题】:mvvm prism 6 forward stack is cleared when navigating to new view导航到新视图时清除 mvvm prism 6 前向堆栈
【发布时间】:2017-07-27 16:18:03
【问题描述】:

我对棱镜比较陌生。我有一个主要内容区域,一次显示一个视图。如果我显示一个列表视图,然后执行编辑命令导航到当前项目的详细视图,我的导航按预期工作。我可以返回列表视图,然后转发到详细视图。如果我返回列表视图并编辑另一个项目,它的视图会按预期显示,但之前的详细视图现在已从前向堆栈中删除。实际查看prism代码,执行RecordNavigation方法时,前向栈被清空。这是设计使然吗?我想让新的详细视图成为当前项目,但保留前向堆栈中的所有视图?我假设我将不得不覆盖 RegionNavigationJournal,但很好奇我是否缺少某些东西。

谢谢,

【问题讨论】:

    标签: wpf mvvm navigation prism journal


    【解决方案1】:

    是的,这是设计使然,并且完全按照后退/前进导航系统应有的方式工作。看看你最喜欢的互联网浏览器。鉴于我是这样导航的:

    PersonLsitView -> PersonAView

    然后按回,我将再次在 PersonListView 中,PersonAView 在我的前向堆栈中。

    现在我从 PersonListView 导航到 PersonBView。现在按下返回按钮,现在我又回到了 PersonListView,只不过这次是 PersonBView。

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

    老实说,您想要的行为对您的用户没有任何意义。

    【讨论】:

    • 嗨,Brian:感谢您抽出宝贵时间来回答。实际上,我仍然希望从 PersonListView 中单击前进时会显示 PersonBView,但是一旦重新激活 PersonBView,前进按钮仍然允许您访问 PersonAView。这是我的第一个 WPF 应用程序,我试图摆脱我通常的选项卡式视觉工作室类型 winform ui,并使用单个主要内容区域。希望日志机制在其父(NavigateFrom)视图之后插入新视图,但在前向堆栈中保留所有先前打开的视图,这是错误的吗?
    • 是的,这绝对是非正统的。这种导航模式会非常令人困惑,而不是用户所期望的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-09
    • 1970-01-01
    • 2015-04-13
    • 2013-01-02
    • 1970-01-01
    相关资源
    最近更新 更多