1

我有 aProbationComboBox绑定SelectedValue到 a RegistrationBindingSource,并且DisplayMember绑定到 a 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

有任何想法吗?谢谢!

4

2 回答 2

1

调用 ResetBindings 怎么样?

帮助文件说这样做“会导致绑定到 BindingSource 的控件重新读取列表中的所有项目并刷新它们的显示值。”

于 2010-03-16T19:09:37.210 回答
1

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

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

  2. ProbationBindingSource.Current通过数据绑定或手动设置ProbationComboBox.SelectedValue属性得到更新。

  3. 在大多数情况下,学生没有试用期,并且值ProbationBindingSource.Current更新为与以前相同的值。结果,ProbationBindingSource.Position没有改变,Text属性也没有更新。

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

于 2010-03-17T19:21:53.853 回答