MVVM:处理超大视图模型

时间:2016-03-29 00:20:02

标签: c# wpf mvvm

我有一个具有数百个属性的工作视图模型,每个属性都由一个或多个客户端视图主动使用。这在技术上是作为交通主管的目的,但我担心遗留维护将是一场噩梦。我已经尝试将其拆分为多个额外的类,然后为VM内部的每个类运行单例,但这使得前端开发人员不知道哪个实例对象将导致任何给定的目标属性。我已经尝试将VM划分为部分类文件。这对于命令实现尤其有用,但是对于属性来说这是不现实的(单独的VM会有数百甚至数千个代码文件),而这个方向只是让我过于依赖F12键(跳转到定义) )。有没有其他人使用MVVM(甚至MVC)遇到这个问题?我需要一种方法来管理这些属性定义,而无需循环呼吸器的帮助!

2 个答案:

答案 0 :(得分:3)

通常,每个View都有一个ViewModel类。视图可以是Window,UserControl或Page。可以让一个ViewModel作为整个应用程序的DataContext,但这个想法让我感到恐惧。 您可以让每个视图解析自己的ViewModel实例。

如果没有看到应用程序的源代码和体系结构,很难提供建议

答案 1 :(得分:0)

我原以为每个View都有自己的ViewModel来更新底层模型和/或观察对底层模型的更改。模型是域对象。域对象是体系结构的核心,它抽象了所有的四肢(数据库,服务等)。如果模型的某些属性更改了值,则当模型通知更改时(例如,在持久性成功之后),所有观察更改的ViewModel都将更新更改。