C#Textbox数据绑定与DataSet

我有一个TextBox ,我给它一个DataBinding ,如下所示:

  txtCompanyAddress.DataBindings.Add("Text", CompanyDetailsDataSet, "CompanyDetails.CompanyAddress"); 

另外我在表单上添加了一个BindingManagerBase对象,如下所示:

 protected BindingManagerBase BindingManager { get { return this.BindingContext[CompanyDetailsDataSet, "CompanyDetails"]; } } 

我的表单上有一个取消按钮,取消了更改。 当我更新txtCompanyAddress的值并点击取消时,我调用BindingManager.CancelCurrentEdit(); 但文本框值不会更改为旧值。

这是任何数据绑定问题吗?

使用此设置时,您的绑定不会自动刷新,您需要在更新数据绑定时更改模式

  txtCompanyAddress.DataBindings.Add("Text", CompanyDetailsDataSet,"CompanyDetails.CompanyAddress", true,DataSourceUpdateMode.OnPropertyChanged); 

你还没有发布你的CompanyDetailsDataSet是什么,所以我假设它实现了IEditableObject接口。 否则,您必须自己完成并确保在CancelEdit()上缓存和检索旧值

 textBox1.DataBinding.Add("Text",ds.Tables[0],"ColumnName") 

其中ds是DataSet的对象, [0]是数据集中的表的数量,如果你的过程返回多于一个表,你可以在0的地方用双重代码写出表的名称……