【发布时间】:2011-02-08 15:57:22
【问题描述】:
我继续与 MVVM 模式作斗争,并且在尝试为中小型项目创建实用设计时遇到了许多挑战。其中一个挑战是弄清楚如何在不创建大量重复、难以维护的代码的情况下获得与这种模式解耦的好处。
我目前的策略是创建“丰富的”模型类。他们完全意识到他们将被 MVVM 模式消耗并实现 INotifyPropertyChanged,允许观察他们的集合并保持认识到他们可能始终处于观察状态。我的 ViewModel 类往往很薄,仅在实际需要转换数据时才公开属性,它们的大部分代码都是 RelayCommand 处理程序。视图很乐意直接绑定到 ViewModel 或 Model,这取决于是否需要任何数据转换。我使用 AOP(通过 Postsharp)来缓解 INotifyPropertyChanged 带来的痛苦,以这种方式使我的所有模型类变得“丰富”变得很容易。
使用这种方法有明显的缺点吗?我是否可以假设 ViewModel 和 View 紧密耦合,以至于如果我需要对 View 进行新的数据转换,我可以根据需要简单地将其添加到 ViewModel 中?
【问题讨论】: