C# Bindingsource调用控件';多次评估属性?

C# Bindingsource调用控件';多次评估属性?,c#,winforms,data-binding,bindingsource,C#,Winforms,Data Binding,Bindingsource,我有一个简单的DTO类,我将它设置为窗体上bindingsource的数据源 表单包含一个自定义控件,该控件具有值属性。这是财产: [Browsable(false)] [Bindable(BindableSupport.Yes, BindingDirection.TwoWay)] public virtual T Value { get { return this.value; } set { this.value = value; } } 当控件绑定到bindingsour

我有一个简单的DTO类,我将它设置为窗体上bindingsource的数据源

表单包含一个自定义控件,该控件具有
属性。这是财产:

[Browsable(false)]
[Bindable(BindableSupport.Yes, BindingDirection.TwoWay)]
public virtual T Value
{
    get { return this.value; }
    set { this.value = value; }
}
当控件绑定到bindingsource时,setter被调用6次。当控件未绑定时,setter仅被调用2次

在这两种情况下,第一个调用都是因为设计器代码有一行:

mycontrol.Value = null;

最后一个调用是因为我设置了一个值。所以第一次和最后一次通话是正常的。但是,当绑定控件时,为什么要额外调用setter 4次?

如果绑定数据源上数据索引的对象的属性发生更改。正在刷新整个bindingsource。这就触发了所有的接受者和接受者。我想情况就是这样。