c# – MVVM:Thin ViewModels和Rich Models

前端之家收集整理的这篇文章主要介绍了c# – MVVM:Thin ViewModels和Rich Models前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在继续努力与MVVM模式,并尝试为一个中小型项目创建一个实用的设计,遇到了一些挑战.其中一个挑战是找出如何通过这种模式获得解耦的好处,而不会产生大量的重复性,难以维护的代码.

我目前的策略是创建“丰富”模型类.他们充分意识到,它们将被MVVM模式消耗,并实现INotifyPropertyChanged,允许观察它们的集合,并保持认识到它们可能总是被观察.我的viewmodel类往往很薄,只有当数据实际需要转换时,才会显示属性,其大部分代码是RelayCommand处理程序.视图可以直接绑定到viewmodels或Model,具体取决于是否需要任何数据转换.我使用AOP(通过Postsharp)来缓解INotifyPropertyChanged的痛苦,这样可以轻松地使我所有的Model类“丰富”.

使用这种方法有很大的缺点吗?我可以假设viewmodel和View如此紧密地耦合,如果我需要View的新数据转换,我可以根据需要简单地将其添加viewmodel中?

解决方法

我认为您的模型上的INotifyPropertyChanged仅在您期望由VM和外部“力量”同时操作时才有用.

我个人是POCO车型的支持者.将任何框架特定的脚手架放在我的模型中会使我担心.当您将事件放入模型类时,您必须仔细考虑模型的生命周期,序列化,存储等方面的可能问题.例如,如果从数据源重新创建对象并且旧的INotifyPropertyChanged订阅现在无效,会发生什么?

对于ObservableCollection来说,类似的更好的地方在VM中,它可以使用IEnumerable数据源,并只向所选视图或临时过滤的项目提供视图.

原文链接:https://www.f2er.com/csharp/96725.html

猜你在找的C#相关文章