【发布时间】:2009-11-15 21:05:59
【问题描述】:
我将 MVVM 与 Prism 和 Silverlight 一起使用。我对一个模型有多种不同的看法。当我写更多视图时,他们的 ViewModel 似乎重复了很多与处理这个模型相关的通用代码。与其在所有虚拟机中重复相同的通用代码,我更倾向于将其推回模型中(这可能会过多地混淆关注点)。或者可能是一些常见的 ViewModel 基类?或者我的虚拟机可能需要它们和模型之间的第二级“共享虚拟机”?这个单一的共享实例,二级虚拟机将整合多个常规虚拟机共享的行为和状态。
有没有关于这些问题和可能的方法的cmet?
感谢 cmets 伙计们。我可能应该告诉你更多关于有问题的特定“共享”虚拟机代码。
我可以看到将 一些 未来代码放在 VM 基类中,但我正在查看的 特定“共享”代码似乎属于由实现的 INotifyPropertyChanged模型本身。这部分基于other thread。
我不认为这违反了 SoC,因为该模型本质上是动态的。它的某些属性仅在特定时间有效。模型的动态特性不仅对 UI 很重要,适当的单元测试也会关心它。因此这个模型似乎需要一个 INotifyPropertyChanged。
有什么相关的吗?
【问题讨论】:
-
@Alan Cobb,所有这些是怎么回事?标题中的标记?
标签: silverlight mvvm viewmodel