数据绑定到对象 - 如何更新对象/绑定?

4
我得到了一个文本框并使用数据绑定到一个对象。这很好用,直到我尝试选择一个新的产品:
product = new Product(id);
textbox.DataBindings.Add("Text", product, "ProductName");

// After user action:
product = new Product(newId); // <- the textbox isn't updated

在产品更新后,我是否需要清除数据绑定并重新设置?

1个回答

8
简而言之:是的,你必须重新建立DataBinding,因为TextBox引用了旧对象。
但为了使其更加健壮,你应该使用BindingSource进行DataBinding。要使其工作,你应该在设计视图中打开你的表单。
- 选择你的TextBox并打开属性窗口 - 查看Data类别,并单击(DataBindings)属性左侧的十字形号 - 单击Text属性旁边的下拉按钮 - 在下拉列表中选择Add project data source - 从向导中选择Object,然后选择你的对象类型
现在你会在你的表单中得到一个新的对象(例如productBindingSource),它绑定到你的TextBox的文本。最后,你需要使用以下代码附加你的对象:
productBindingSource.DataSource = product;

但是这种解决方案无法防止重新绑定,但现在你只需要执行以下操作:
product = new Product();
productBindingSource.DataSource = product;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接