已关闭,此问题为opinion-based。目前不接受答复。
**想改善这个问题吗?**更新问题,以便editing this post可以用事实和引用来回答。
4天前关闭。
Improve this question
我已经决定,在我的工作场所的高级开发人员使用WinForms后,因为我甚至不知道多久,尝试在我们的下一个项目中使用WPF。所以我试着学习它的基础知识,尽管我知道它是如何工作的,但我从未在实践中使用过它。
所以我被一个非常非常基本的概念难倒了,在WinForms中,它基本上是一个傻瓜:打开另一扇窗。
哦,是的。
你知道,MVVM和它的抽象。所以......我尝试研究在WPF中的ViewModel之间导航的主题,因此逻辑仍然是分离的。这是一个非常令人困惑的主题,感觉不必要的复杂-至少,在Xamarin/MAUI中,像FreshMVVM这样的框架以不复杂的方式处理这部分......
在WPF/MVVM中处理导航的最佳实践是什么?我已经阅读了许多建议,从依赖注入到打破MVVM模式并通过ViewModel引用视图……这一切都很令人困惑
1条答案
按热度按时间w8biq8rn1#
我不认为这是一个与MVVM相关的问题。MVVM不以任何方式解决WPF中的导航。
在WPF中有很多方法来处理导航。我已经使用了很长一段时间(并且正在使用MVVM)的一个是这样的:
1.有一个主视图+主视图模型。
1.主视图模型包含一个名为“CurrentView”的属性,它可以是适合您需要的任何类型。它可以只是一个对象或一个接口,您在要导航到的其他视图模型中实现它。此属性保存当前视图模型。
1.将ContentControl放在主视图中,并将其内容绑定到主视图模型的CurrentView属性。
1.为每个视图创建一个DataTemplate。
就是这样。每次CurrentView的值改变时,ContentControl将加载相应的DataTemplate。