3

现在的情况

我有一个使用 MVVM 和 NHibernate 的 WPF 应用程序。我有一个包含所有客户的列表框的主/详细信息窗口,并且列表框的 selectedItem 是用于在详细信息屏幕中显示客户详细信息的对象。在详细信息屏幕中,我有一个添加、编辑、删除、保存和撤消按钮。一切都适用于我设置的绑定。

问题

但是对于我的撤消按钮,我正在考虑制作原始客户对象的副本,因此当我单击撤消按钮时,该字段将重置为原始值的值。但是在我的客户对象中,我有一个地址对象,并且通过浅拷贝,这两个对象将保持对该对象的相同引用。因此,当我从 Address 对象更改字段时,原始客户地址也将更改。我正在考虑对我的客户地址进行深层复制,但我无法使我的对象可序列化(更改模型对象不在我的控制范围内)

  • 有没有办法在没有序列化的情况下进行深度复制?
  • 还是有一些标准的方法来完成我想要实现的行为?
4

1 回答 1

2

我会简单地返回数据库并重新加载客户对象。这可确保您显示的数据与数据库中的数据一致,并降低并发问题的风险。

于 2013-03-06T17:33:16.753 回答