0

我有一个TextBox,我给了一个DataBinding如下:

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

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

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

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

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

4

2 回答 2

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

其中ds是 DataSet 的对象,[0]是数据集中的表的数量,如果您的过程返回一个以上的表,您可以用双代码代替 0 写表的名称...

于 2014-09-06T08:53:01.830 回答
0

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

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

此外,您还没有发布您CompanyDetailsDataSet的内容,所以我假设它实现了IEditableObject接口。否则你将不得不自己做,并确保旧值被缓存和检索CancelEdit()

于 2013-03-30T12:04:42.477 回答