我很迷惑.也许你可以帮帮我:)
我一直在遵循CAG的指导,发现MVP模式对我来说非常自然.假设我有一个支持UI的模型(例如:实现INotifyPropertyChanged),我使用演示者将此模型绑定到视图(演示者知道视图的接口),保持我的Code-Behind尽可能小只处理Bindings(模型和命令)属性(或方法)或没有ICommand的控件的事件,在这种情况下立即委托给演示者.
过了一会儿,我发现了MVVM模式,到目前为止它还没有找到我.据我所知,只有当我的模型不支持UI时,我才会使用MVVM.但是保持演示者并使用新模型更合理,我无法理解这种用法会让我失去什么.我知道我错过了什么,但它是什么:).
此外,当您的View是通用的并且可以处理多种模型时(例如在PropertyGrid中).建议将ViewModel与DataTemplate一起使用,但在这种情况下,您无法为模型中的每个实体创建模板,只需要在运行时进行调查,您会建议什么?
在观看Josh Smith在屏幕录像中谈论MVVM时,我感觉到ViewModel中模型的重新暴露违反了DRY(不要重复自己),这真的是不可避免的吗?令人惊讶的是,与ADO.Net动态数据元数据类的火焰相比,他现在没有人在争论它.
希望它足够清楚
谢谢
阿里尔