我想更多地了解winforms的生命周期。我知道BindingContextChanged
事件将表单的Visible
属性设置为true。但我想知道,哪种上下文绑定到表单?是什么触发了BindingContextChanged
,因此表单属性Visible
设置为true?
答案 0 :(得分:2)
我不知道BindingContext
和Visible
之间的紧密关联,但通常每个表单只会获得一个新的BindingContext
。如果您需要在不同控件之间使用单独的绑定上下文做一些时髦的事情,那么您可以通过将拥有 BindingContext
分配给某些控件来实现该选项。
查看反射器,看起来BindingContext
首次设置为get
中的ContainerControl
- 实际上,这只是 放在BCL中,看似new
编辑:
public override BindingContext get_BindingContext()
{
BindingContext bindingContext = base.BindingContext;
if (bindingContext == null)
{
bindingContext = new BindingContext();
this.BindingContext = bindingContext;
}
return bindingContext;
}
即。当首次需要BindingContext
时,它会被懒惰地实例化,并且分配给this.BindingContext
会导致调用事件(等)。
不确定为什么你认为这与Visible
有关 - 需要解释?