WPF绑定到对象

时间:2010-10-11 21:20:37

标签: wpf data-binding binding

我正在尝试重置绑定到简单表单(一些文本框和几个按钮)的对象中的数据。

我有2个单独创建的对象,但具有相同的信息。对象1使用DataBinding绑定到表单。对象2可以将对象1重置为原始值。 每当用户编辑数据时,一切都很好,对象1用新值更新,而对象2保持不变。当用户编辑某些数据时出现问题,然后单击“重置按钮”,调用类似于此的代码:

Object1 = Object2

值重置,但现在当用户再次编辑数据时,Object1和Object2值都会更新。我不能再重置了。

如何在不同时更新Object2的情况下重置Object1值? 有人可以解释为什么Object2在重置后可以更新吗?

谢谢。

2 个答案:

答案 0 :(得分:2)

当你说Object1 = Object2时,你只是让Object1指向对象2指向的任何地方。他们共享相同的参考,因此两者都在同一时间更新。

我的建议是深度克隆。我不知道你班级的复杂性。这段代码对我来说非常方便。

http://www.codeproject.com/KB/tips/SerializedObjectCloner.aspx

因此,无论何时重置Object1,都要创建一个传入Object2的深度克隆对象并将其分配给Object1。

答案 1 :(得分:1)

Object2变为绑定,因为Object1现在只是对Object2的引用。要避免这种情况,请尝试将Object2的属性复制到Object1中,或者找出克隆Object2的方法,然后将克隆分配给Object1。