如何在MVVM模式中保持模型和视图模型之间的一致性?

8 wpf mvvm

问题陈述

我正在编写一个非常基本的WPF应用程序来改变配置文件的内容.数据格式是带有架构的XML文件.我想将它用作MVVM的学习项目,所以我已将代码分成两部分

  • 型号:从xsd.exe自动生成的C#类

  • 视图模型:模型的视图友好表示.

  • 查看:Xaml和后面的空代码

我理解View-Model如何使View-binding变得轻而易举.但是,这不会让View-Model < - >模型语义非常尴尬吗?Xsd.exe生成带有多个XML元素数组的C#类.但是,在V-VM级别,您需要Observable Collections.

问题:

这是否真的意味着我必须保持两个完全不同的集合类型代表相同的数据连贯性?

保持模型和视图模型之间一致性的最佳实践是什么?

Axe*_*ler 6

我不是一个大专家,但我认为是的.一般的想法确实是通过Binding传播视图和viewModel之间的变化,然后通过事件(在Model - > ViewModel方向)或依赖(在另一个方向)传播ViewModel和Model之间的变化.

我不知道它的标准是多少,但我对MVVM的理解是ViewModel应该保存对模型的引用,这样当用户修改视图时,ViewModel应该调用模型上的相应代码.反过来说,模型应该在修改时引发事件,并且ViewModel应该相应地更新自身(ViewModel是模型的观察者).