gpt4 book ai didi

c# - Prism 导航 - 上一个和下一个 View

转载 作者:行者123 更新时间:2023-11-30 14:55:08 30 4
gpt4 key购买 nike

我正在使用 Prism 和 MVVM 开发一个 wpf 应用程序。

我有一个主 shell,它有两个区域:菜单区域和主区域。

我正在尝试在菜单区域(包含 MenuView)中实现一个 BACK 和 FORWARD 按钮,就像我们在任何浏览器中一样:假设我有 5 个 View :View1、View2、View3、View4、View5。
当我启动应用程序时,View1 显示在主区域中。目前,我希望禁用这些按钮。现在,我选择导航到 View3:View3 显示在主区域中,然后后退按钮变为启用状态(前进按钮保持禁用状态)。然后,我导航到 View2,它显示在主区域中。

现在,当我单击后退按钮时, View 3 显示在主区域中,前进按钮变为可用。我单击 Forward,现在显示 View 2,并且 Forward btn 被禁用。

我试过使用 Navigation Journal,如以下链接中所述: http://msdn.microsoft.com/en-us/library/gg430861(v=pandp.40).aspx

但没有成功,因为我做了他们在 MenuViewModel 中提到的操作,这是整个应用程序生命周期中在菜单区域中显示的唯一 View (并且只有主区域切换 View )。这就是为什么永远不会调用 OnNavigatedTo 方法的原因,因为我永远不会导航到 MenuView,这会导致 navigationService 始终为 null。

要点是我想要 MenuView 中的这些按钮 - 在所有应用程序生命周期中唯一显示在菜单区域中的 View 。后退和前进按钮在主要区域的 View 之间导航 - 来回。非常感谢您的建议。

最佳答案

我是这样解决的:

在 Menu ViewModel 中,我有一个对 RegionManager 的引用,因此我可以访问主要区域及其导航服务:

var mainregion = _regionManager.Regions[RegionNames.mainregion];
mainregion.NavigationService.Journal.GoForward();

关于c# - Prism 导航 - 上一个和下一个 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25948219/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com