我正在编写一个MVVM应用程序,其中一个屏幕的大小非常重要。屏幕维护和对象具有多个其他对象列表,这些对象也在事务的上下文中被编辑。
我已将视图分解为多个用户控件。该模型被分解为不同的类类型。问题是ViewModel。因为它聚集了来自多个对象类型的信息并且在很多属性上传递,所以到最后可能是几千行代码。这些代码都不复杂,只是感觉不对。
这是该模式不可避免的后果吗?
在这种情况下,我应该查看多个ViewModel吗?可能,每个模型类一个。
人们如何在现实世界中处理非平凡的例子(而不是另一个演示)?
感谢
BTW:WPF / Prism / C#/ MVVM环境
答案 0 :(得分:1)
我尝试为每个View维护一个ViewModel。这对我来说似乎很有用,当谈到ViewModels之间的通信时...有很多方法可以解决这个问题。通常我使用Josh Smith的MVVM Foundation中的Messenger类。
尽管如此,没有理由让任何人ViewModel变得荒谬可笑。总是有一些方法可以设计一个项目,这样就不会有任何一件事完全失控。
HTH
答案 1 :(得分:0)
为什么您的ViewModel文件会膨胀?
与任何其他类一样,您应该能够将代码提取给较小的协作者,然后使用委托。 VM之间的通信可以通过命令/事件/方法调用。 VM应该将另一个视图或更高级别的VM视为同一个事物(另一个客户端)。
答案 2 :(得分:0)
臃肿的ViewModel通常是臃肿的View的标志,也许它可以分为子视图?
我个人经常发现,ViewModels中的大部分代码都是锅炉板代码,让视图知道某些属性已经更新(INotifyPropertyChanged)。看看Ayende解决这种膨胀问题的方法:
http://ayende.com/Blog/archive/2009/08/08/an-easier-way-to-manage-inotifypropertychanged.aspx