如何从模型转换到模型视图?

Mic*_*ers 3 c# wpf model mvvm

我目前正忙于将应用程序重写为MVVM(分阶段,因为它需要做很多工作).

目前,我可以根据模型视图中的更改填充列表视图和控件,并且列表视图选择也正确耦合(至少我知道如何正确地完成它).

但是,我想知道模型中的变化将反映在模型视图中(因此在视图中).我应该在模型中的所有项目上添加INotifyPropertyChange接口并订阅模型视图(如果我想订阅不在模型层次结构"顶部"的项目,甚至可能像链一样)?

例如,我有一个包含列表B等的列表A.我是否需要在列表A中订阅列表B的属性更改,并在模型视图中订阅列表A?并取消订阅是否进行了另一个列表选择(导致大量取消订阅和新订阅项目)?

感谢您阅读/回答.

dev*_*tal 6

是的,通常您会INotifyPropertyChanged在模型上实施,并在您的视图模型中订阅.如果您正在为您的业务实体使用CSLA等框架,那么Rocky描述了一个贫穷与富有的模型,在后者中,您将模型直接暴露给视图模型上的视图作为属性.

我认为INotifyPropertyChanged是一个稳定的依赖,所以它不会显着污染你的模型.有些人不喜欢直接将模型暴露给视图,但我发现它可以节省很多或重复代码.您可能会发现,如果不这样做,您的视图模型最终会复制模型上的许多属性,而不会添加任何值.