我正在开发一个 WPF 项目,并实现了一种非常简单的方法来撤消一个级别的更改,该更改在整个项目中运行良好,除了对象属性的更改反映在 MemberwiseClone 中的一种情况。
我正在做的是在我的对象中添加或编辑属性之前在我的对象中执行 MemberwiseClone,然后如果用户想要撤消,我将 MemberwiseClone 对象中的每个属性复制回我的当前对象。
因为我使用的是 WPF 绑定,所以使用 MemberwiseClone 对我很有吸引力,因为到目前为止,对属性所做的任何更改都没有反映在 MemberwiseClone 中。这次我的对象中有一个属性,它是另一个对象的 ObservableCollection,发生的情况是,如果我将一个项目添加到 ObservableCollection,它也会添加到由 MemberwiseClone 创建的对象中,我永远无法真正撤消。
有没有办法解决?欢迎您对此有任何想法。
谢谢。