C#中的数据绑定问题

时间:2012-10-15 14:03:11

标签: c# data-binding

我在C#中遇到DataBindings的问题。

我有一个BindingSource,它的DataSource设置为DataRowView

然后我使用绑定源为我的控件设置所有数据绑定。

这是我的代码:

bsDataRecord.DataSource = myDataRow; //bsDataRecord is a BindingSource and myDataRow is a DataRowView
//Add Databinding to my controls
dateNextDate.DataBindings.Add("Value", bsDataRecord, "Next_Date", false, DataSourceUpdateMode.OnPropertyChanged); //DateTimePicker
textInformation.DataBindings.Add("Text", bsDataRecord, "Information", false); //TextBox
//more controls, etc

我的数据绑定一切正常。因此,当我选择控件并输入一个值时,myDataRow会更新。

当我尝试在代码中设置控件的值时会出现问题,例如

textInformation.Text="Test";

当我这样做时,myDataRow没有更新。我可以让myDataRow更新的唯一方法是给我更新焦点的控件。

希望有意义!?有人有任何想法吗?

提前致谢。

我正在使用c#.Net 4.0。

2 个答案:

答案 0 :(得分:2)

在有问题地设置数据源的属性后,您需要让控件从数据源重新读取它们的值。通常是一个简单的电话

dataBindingSource.ResetBindings(false); // false for value change not schema change

但你也可以控制使用它:

foreach (Binding b in myControl.DataBindings) b.ReadValue();

Binding.ReadValue()使控件的bound属性设置为数据源值

希望这有帮助!

答案 1 :(得分:0)

如果您“手动”更新(非双向)绑定目标,则会破坏绑定,它将不再起作用。这是正常行为。

所以让你的绑定双向实现你想要做的事情。