简单数据绑定-如何处理绑定字段/属性更改。Winforms,.Net

简单数据绑定-如何处理绑定字段/属性更改。Winforms,.Net,.net,vb.net,winforms,data-binding,.net,Vb.net,Winforms,Data Binding,我有一个具有可绑定属性的自定义控件:- Private _Value As Object <Bindable(True), ... > _ Public Property Value() As Object Get Return _Value End Get Set(ByVal value As Object) _Value = value End Set End Property 另外,在这里,我将向DataBind

我有一个具有可绑定属性的自定义控件:-

Private _Value As Object
<Bindable(True), ... > _
Public Property Value() As Object
    Get
        Return _Value
    End Get
    Set(ByVal value As Object)
        _Value = value
    End Set
End Property
另外,在这里,我将向DataBindings.CollectionChanged事件添加一个处理程序。 这是我检索类型的第二个位置:-

Private Sub DataBindings_CollectionChanged(ByVal sender As Object, ByVal e As System.ComponentModel.CollectionChangeEventArgs)

    If e.Action = CollectionChangeAction.Add Then

        Dim b As Binding = DirectCast(e.Element, Binding)
        If b.PropertyName = "Value" Then
            Me.GetValueType(b)
        End If

    End If
End Sub
我需要第一个位置,因为BindingContextChanged事件在InitializeComponent之后的一段时间才会触发。 如果通过编程更改绑定字段,则需要第二位

我是在这里处理正确的事件,还是有更干净的方法

注意:我的GetValueType方法使用CurrencyManager.GetItemProperties…等来检索类型

干杯

朱尔斯


ETA:这里需要澄清的是,我想知道绑定字段何时发生了更改,而不是绑定字段的值。

听起来您在寻找INotifyPropertyChange接口,它将自动通知绑定控件更新


听起来您正在寻找INotifyPropertyChange接口,它将自动通知绑定控件更新


嗨,我想这不是我想要的。我想知道绑定字段何时更改,而不是绑定字段值。例如,我的控件的Value属性可以绑定到源“Name”字段。如果这是改为“地址”字段,那么我想知道。我不明白为什么会发生这种情况,但重要的是我要为它编写代码,以防万一。事实上,这是上面的一个坏例子。更好的例子是,如果绑定字段从“Name”更改为“favoriteColour”,那么我可以更改类型。嗨,我不认为这是我要找的。我想知道绑定字段何时更改,而不是绑定字段值。例如,我的控件的Value属性可以绑定到源“Name”字段。如果这是改为“地址”字段,那么我想知道。我不明白为什么会发生这种情况,但重要的是我要为它编写代码,以防万一。事实上,这是上面的一个坏例子。更好的例子是,如果绑定字段从“Name”更改为“favoriteColour”,那么我可以更改类型。
Private Sub DataBindings_CollectionChanged(ByVal sender As Object, ByVal e As System.ComponentModel.CollectionChangeEventArgs)

    If e.Action = CollectionChangeAction.Add Then

        Dim b As Binding = DirectCast(e.Element, Binding)
        If b.PropertyName = "Value" Then
            Me.GetValueType(b)
        End If

    End If
End Sub