在我的 WPF MVVM 应用程序中,我的模型是一个复杂的模型对象树,在运行时不断变化。模型实例在运行时来来去去,改变它们在树中的位置,当然也改变它们的许多属性。我的视图几乎是该树的一对一视觉表示。每个模型实例在 80% 的情况下也是树中的一个节点。
我现在的问题是我将如何围绕这个设计 ViewModel?我的问题是有很多不同的模型类型,每种类型都有很多属性。如果我正确理解 MVVM,则视图不应直接与模型通信,因此这意味着我必须为每个模型类型创建一个 ViewModel 类型,并且必须在 ViewModel 中重新包装模型类型的每个属性。
ViewModel 还需要“绑定”到 Model 的 propertychanges 以将其传递给视图(使用 wpf datatbinding)。我需要一些工厂来为每个新出现的模型创建并引入一个 ViewModel 实例,并且当相应的模型消失时我会处理每个 ViewModel 实例。我最终会跟踪我创建的所有实例。由于这种双重包装,生成了多少臃肿的代码是令人难以置信的。这真的是一个好方法吗?每个实体和每个属性或多或少都存在两次,我有很多额外的代码使模型和视图保持同步。你怎么处理这个?有没有更聪明的方法来解决这个问题?
有没有人有比我做得更好的参考/示例实现?