gpt4 book ai didi

wpf - 在应用程序中管理多个 WPF View

转载 作者:行者123 更新时间:2023-12-03 17:54:54 24 4
gpt4 key购买 nike

因此,我看到 WPF 中存在导航服务,用于维护通过应用程序的流程。我并不真正在市场上寻求后退和前进类型的功能。我只是在寻找一种在按下特定 View 上的按钮时在 View 之间切换的好方法。我正在使用 MVVM,所以我不确定是否可以让 App.xaml.cs 可能包含每个 View 或 ViewModel 的副本,并让 ViewModel 命令调用 App.xaml.cs 来进行切换。也许我应该只处理按钮上的 Click 事件并做一些 this.Close();新窗口。显示();。
与 WPF 中的许多东西一样,这对我来说并不直观,尽管可能有几个简单的解决方案。

谢谢!

最佳答案

我创建了一个应用程序类在应用程序启动时实例化的“窗口加载器”类。窗口加载器有一个字典,它维护 View 模型类型和 View 类型的关联。它还有一个获取 View 模型实例的方法,根据 View 模型的类型解析 View ,实例化 View ,将 View 的数据上下文设置为 View 模型,然后显示它。窗口加载器还在 View 模型中注册一个事件,该事件在窗口想要关闭时引发。

窗口加载器实现了一个 IWindowLoader 接口(interface),并且对它的引用保存在每个 View 模型中(当窗口加载器实例化 View 模型时,它会将自己分配给 View 模型中的公共(public) IWindowLoader 属性)。因此,任何 View 模型都可以导致显示任何其他 View 模型,而无需了解 View 并且不进行显示本身。此外,可以轻松地模拟窗口加载器以进行测试。

当我经历与现在相同的过程时,我发现了许多相同基本模式的示例。我刚刚结束了自己的滚动。

关于wpf - 在应用程序中管理多个 WPF View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1828043/

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