我正在继续努力与MVVM模式,并尝试为一个中小型项目创建一个实用的设计,遇到了一些挑战.其中一个挑战是找出如何通过这种模式获得解耦的好处,而不会产生大量的重复性,难以维护的代码.
我目前的策略是创建“丰富”模型类.他们充分意识到,它们将被MVVM模式消耗,并实现INotifyPropertyChanged,允许观察它们的集合,并保持认识到它们可能总是被观察.我的viewmodel类往往很薄,只有当数据实际需要转换时,才会显示属性,其大部分代码是RelayCommand处理程序.视图可以直接绑定到viewmodels或Model,具体取决于是否需要任何数据转换.我使用AOP(通过Postsharp)来缓解INotifyPropertyChanged的痛苦,这样可以轻松地使我所有的Model类“丰富”.
使用这种方法有很大的缺点吗?我可以假设viewmodel和View如此紧密地耦合,如果我需要View的新数据转换,我可以根据需要简单地将其添加到viewmodel中?