MVVM和WPF中的设计模型以及状态管理

| 在我的WPF应用程序中,我正在使用MVVM。我正在从XML文件中读取内容,将其反序列化为对象模型并将其保存在内存中。 XML文件-> BusinessObjectModel(Model)-> ViewModel 每当viewmodel需要模型时,我都会从内存中提供它。我的问题是,当我在视图中使用模型元素时,它正在更新内存中的模型(显然!)。我不想这样做,我只希望用户在视图(或对话框)中单击“确定”时更新模型。通常如何实现?我应该只为viewmodel提供模型的副本,而不是原始参考吗?     
已邀请:
如您建议的那样,编辑模型对象的副本将解决此问题。 另一种方法是使属性绑定使用显式的UpdateSourceTrigger。单击“保存”后,您将以编程方式在每个绑定表达式上调用UpdateSource。这需要一些额外的代码,因为它们是操纵UI元素的代码,因此它们将属于View的背后代码。 另外,请考虑在VM上为View中公开的每个属性都具有一个属性,其中VM属性的后备字段不是包装的Model对象的对应属性。当用户单击“保存”时,您可以将VM中的每个属性分配给Model对象。自然,视图中的控件将绑定到VM属性,而不是Model属性。这实际上就像拥有克隆一样,而在Model层中没有额外的支持克隆的负担。 我并不是在建议这些选择中的任何一个是好是坏。这完全取决于它们的使用环境。     

要回复问题请先登录注册