【发布时间】:2013-03-19 08:27:54
【问题描述】:
对于任何具有超过 5 个视图和视图模型的中间 MVVM 应用程序,是否有任何推荐的设计模式来说明如何为此类应用程序搭建脚手架?
现在我通常有一个在 App.OnStartup 中创建的控制器:
- 设置主视图
- 注入子视图(通常我有一个带有状态栏和导航的 MainWindow,它有“内部窗口”)
- 处理视图和视图模型的结合。
- 处理导航(从视图 A 到视图 B)
- 支持面包屑导航(以及典型的 NavigationService.GoBack() 之类的东西)
我相信已经有很好的设计模式,但我没有听说过或读过它们。
所以问题是: 是否有任何普遍接受的模式来处理视图模型和视图的耦合(设置数据上下文)以及视图之间的导航?
在我看来,视图优先(在 XAML 中设置 DataContext)和视图模型优先(让视图模型通过 DI/IOC 获得视图注入)都不是很好,因为它们在视图和视图模型之间建立了依赖关系。
Plain MVVM 对如何设置整个 MVVM 机器没有任何假设。 我只是想知道这个很常见的问题没有“现成的”解决方案。 我相信控制器被广泛使用。其他人是怎么解决的?
【问题讨论】:
-
我看不到你在这里问什么。
-
他正在询问在他的应用程序中实现 MVVM 模式的最佳方式。
-
为了更清楚而编辑的问题
-
为什么需要将视图与视图模型解耦?你期待什么样的设计?
标签: c# design-patterns mvvm architecture