2010-06-09 123 views
4

我得到一个文本框,并使用数据绑定到一个对象。这工作得很好,直到我尝试选择新的产品:数据绑定到对象 - 如何更新对象/绑定?

product = new Product(id); 
textbox.DataBindings.Add("Text", product, "ProductName"); 

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

我必须清除数据绑定和产品更新后重新设置呢?

回答

8

总之:是的,你必须重新建立DataBinding,使TextBox有一个对旧对象的引用。

但为了使这个更健壮一些,你应该使用BindingSource来为你的DataBinding。为了使这个工作,你应该在设计视图中打开你的表单。

  • 选择您的文本框,然后打开属性窗口
  • 查找到类别数据,点击在十字架上的(数据绑定)的左财产
  • 单击下拉按钮旁边在文本财产
  • 在下拉列表中选择添加项目数据源
  • 从向导中选择对象并在接下来的对象类型

现在,您可以在您的形式得到一个新的对象(例如productBindingSource),这是绑定到您的文本框的文本。最后但并非最不重要,你必须使用下面的代码添加你的对象:

productBindingSource.DataSource = product; 

而且这个解决方案并不能抵御重新绑定,但你现在要做的是:

product = new Product(); 
productBindingSource.DataSource = product;