Winforms派生的combobox属性双向绑定

时间:2013-08-12 08:41:07

标签: c# .net vb.net winforms binding

我创建了自定义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提供了数据绑定写入方法也很有帮助,谢谢你的时间。

1 个答案:

答案 0 :(得分:1)

不确定为什么我看不到你的完整实现,但如果你真的想强制数据绑定将值写回对象,请尝试DataBinding.WriteValue(),所以在你的ComboBox类中,在适当的地方执行此操作(可能在一些文本更改事件处理程序):

   theDataBinding = Me.DataBindings(theIndex) ' you may find the binding by the bound field name
   theDataBinding.WriteValue()