我有一个TextBox
我给了DataBinding
,如下所示:
txtCompanyAddress.DataBindings.Add("Text", CompanyDetailsDataSet,
"CompanyDetails.CompanyAddress");
我还在表单上添加了一个BindingManagerBase对象,如下所示:
protected BindingManagerBase BindingManager
{
get
{
return this.BindingContext[CompanyDetailsDataSet, "CompanyDetails"];
}
}
我的表单上有一个取消按钮,取消了更改。当我更新txtCompanyAddress
中的值并点击取消时,我会调用BindingManager.CancelCurrentEdit();
,但文本框值不会更改为旧值。
这是否存在任何数据绑定问题?
答案 0 :(得分:0)
使用此设置无法自动刷新您需要在更新数据绑定时更改模式
txtCompanyAddress.DataBindings.Add("Text", CompanyDetailsDataSet,"CompanyDetails.CompanyAddress", true,DataSourceUpdateMode.OnPropertyChanged);
你还没有发布CompanyDetailsDataSet
的内容,所以我假设它实现了IEditableObject
接口。否则,您必须自己完成并确保在CancelEdit()
上缓存和检索旧值
答案 1 :(得分:0)
textBox1.DataBinding.Add("Text",ds.Tables[0],"ColumnName")
其中ds
是DataSet的对象,[0]
是数据集中的表的数量,如果您的过程返回多个表,则可以在0的位置用双写代码写出表的名称...