0

我创建了自定义 ComboBox 控件,并希望将自定义属性“ActiveValue”绑定到数据集。我这样做的方式是:

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 提供的数据绑定写入方法也很有帮助,感谢您的时间。

4

1 回答 1

1

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

   theDataBinding = Me.DataBindings(theIndex) ' you may find the binding by the bound field name
   theDataBinding.WriteValue()
于 2013-08-12T08:51:31.747 回答