我创建了自定义ComboBox控件,并希望将自定义属性“ActiveValue”绑定到DataSet。我这样做:
cboMyComboBox.DataBindings.Add(New System.Windows.Forms.Binding("ActiveValue", Me.dstDetails, "Table.CBOVALUE", True, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged, ""))
...
Public Property ActiveValue As String
Get
Return _activeValue
End Get
Set(value As String)
If _activeValue <> value Then
_activeValue = value
Me.Text = _activeValue
End If
End Set
End Property
它从DataSet中检索值,但无法更新。无论我选择什么价值都没关系,因为它没有更新。此属性是简单的文本字段。试图在我派生的ComboBox类上实现INotifyPropertyChanged,但它没有帮助。有人能告诉我问题出在哪里?感谢
更新: 在我班上发现了一个错误,但是Rex提供了数据绑定写入方法也很有帮助,谢谢你的时间。
答案 0 :(得分:1)
不确定为什么我看不到你的完整实现,但如果你真的想强制数据绑定将值写回对象,请尝试DataBinding.WriteValue(),所以在你的ComboBox类中,在适当的地方执行此操作(可能在一些文本更改事件处理程序):
theDataBinding = Me.DataBindings(theIndex) ' you may find the binding by the bound field name
theDataBinding.WriteValue()