C# Bindingsource调用控件';多次评估属性?
我有一个简单的DTO类,我将它设置为窗体上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
值
属性。这是财产:
[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。这就触发了所有的接受者和接受者。我想情况就是这样。