DataBinding:当SelectedValue更改时,ComboBox.Text不会更新?

时间:2010-03-16 18:24:04

标签: vb.net data-binding combobox bindingsource selectedvalue

我有一个ProbationComboBoxSelectedValue绑定到RegistrationBindingSourceDisplayMember绑定到ProbationBindingSource

当我致电RegistrationBindingSource.ResetCurrentItem()时,SelectedValue属性会使用RegistrationBindingSource.ProbationID()中的正确值进行刷新,但Text属性不会更新。

以下是我在ComboBox上设置数据绑定的方法:

ProbationComboBox.DataBindings.Add(New System.Windows.Forms.Binding( _
   "SelectedValue", Me.RegistrationBindingSource, "ProbationID", True))

ProbationComboBox.DataSource = Me.ProbationBindingSource
ProbationComboBox.DisplayMember = "probation"
ProbationComboBox.ValueMember = "id"

直到我能够找出绑定问题,我才将其用作临时修复:

DataRow row = CType(ProbationBindingSource.Current, DataRowView).Row
ProbationComboBox.Text = CType(row, RootNamespace.DataSet.probationRow).probation

有什么想法吗?谢谢!

2 个答案:

答案 0 :(得分:1)

如何调用ResetBindings?

帮助文件说执行此操作“会导致绑定到BindingSource的控件重新读取列表中的所有项目并刷新其显示的值。”

答案 1 :(得分:1)

问题不在于数据绑定到RegistrationBindingSource,而在于我的数据和程序。以下是发生的事情:

  1. 在记录加载之前,我会清除所有Text控件的ComboBox属性。

  2. ProbationBindingSource.Current已通过数据绑定或手动设置ProbationComboBox.SelectedValue属性进行了更新。

  3. 在大多数情况下,学生没有进行试用期,ProbationBindingSource.Current的值更新时的值与以前相同。因此,ProbationBindingSource.Position没有更改,Text属性未更新。

  4. 我的最终解决方案会在清除SelectedValue属性之前检查是否要更新给定的Text