我有一个ProbationComboBox
,SelectedValue
绑定到RegistrationBindingSource
,DisplayMember
绑定到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
有什么想法吗?谢谢!
答案 0 :(得分:1)
如何调用ResetBindings?
帮助文件说执行此操作“会导致绑定到BindingSource的控件重新读取列表中的所有项目并刷新其显示的值。”
答案 1 :(得分:1)
问题不在于数据绑定到RegistrationBindingSource
,而在于我的数据和程序。以下是发生的事情:
在记录加载之前,我会清除所有Text
控件的ComboBox
属性。
ProbationBindingSource.Current
已通过数据绑定或手动设置ProbationComboBox.SelectedValue
属性进行了更新。
在大多数情况下,学生没有进行试用期,ProbationBindingSource.Current
的值更新时的值与以前相同。因此,ProbationBindingSource.Position
没有更改,Text
属性未更新。
我的最终解决方案会在清除SelectedValue
属性之前检查是否要更新给定的Text
。