WPF 绑定(bind)到对象

标签 wpf data-binding binding

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

我有 2 个单独创建的对象,但具有相同的信息。对象 1 使用 DataBinding 绑定(bind)到表单。对象 2 能够将对象 1 重置为原始值。 每当用户编辑数据时,一切都很好,对象 1 会更新为新值,而对象 2 保持不变。当用户编辑一些数据,然后单击“重置”按钮,该按钮调用如下所示的代码时,我遇到了一个场景问题:

Object1 = Object2

值被重置,但现在当用户再次编辑数据时,Object1 和 Object2 值都会更新。而且我无法再重置。

如何重置对象 1 的值而不同时使对象 2 可更新? 有人可以解释为什么 Object2 在重置后变得可更新吗?

谢谢。

最佳答案

当你说Object1=Object2时,你只是让Object1指向对象2所指向的任何地方。它们共享相同的引用,因此两者同时更新。

我的建议是深度克隆。我不知道你的类(class)的复杂程度。这段代码对我来说非常方便。

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

因此,每当您重置 Object1 时,都会创建一个传入 Object2 的深度克隆对象并将其分配给 Object1。

关于WPF 绑定(bind)到对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3910057/

相关文章:

c# - LINQ to SQL 连接字符串

c# - Kinect 裁剪图像

c# - 将 GeometryModel3D 添加到 Model3DGroup

Android Kotlin Kotlinx 模块级别 View 绑定(bind)

wpf - 绑定(bind)一个不工作 WPF 的祖先

python - 在哪里可以找到 GIO 的 GSocket 的 Python 绑定(bind)?

c# - 在 asp.net 中集成 Xaml 的快速方法?

c# - 在 DataSource 上找不到 DataMember 属性 "Type"

c# - WPF/XAML 将元素的宽度绑定(bind)到屏幕大小的一部分

c# - MVVM ICommand 绑定(bind) "higher up"