WPF";撤消";深度复制

本文关键字:quot 复制 深度 WPF 撤消 | 更新日期: 2023-09-27 18:02:40

当前情况

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

问题

但对于我的撤消按钮,我想复制原始Customer对象,这样当我单击撤消按钮时,字段将重新设置为原始值中的值。但在我的客户对象中,我有一个Address对象,通过浅拷贝,这两个对象将保持对该对象的相同引用。因此,当我更改Address对象中的字段时,原始Customer地址也将更改。我想对我的客户地址进行深度复制,但我无法使我的对象可序列化(更改Model对象不在我的控制范围内(

  • 有没有什么方法可以在不序列化的情况下进行深度复制
  • 或者有没有一些标准的方法来实现我想要实现的行为

WPF";撤消";深度复制

我只需返回数据库并重新加载客户对象。这样可以确保显示的数据与数据库中的数据一致,并降低并发问题的风险。