C#哪个上下文在表单加载时绑定到表单?

时间:2010-09-07 08:49:44

标签: c#

我想更多地了解winforms的生命周期。我知道BindingContextChanged事件将表单的Visible属性设置为true。但我想知道,哪种上下文绑定到表单?是什么触发了BindingContextChanged,因此表单属性Visible设置为true?

1 个答案:

答案 0 :(得分:2)

我不知道BindingContextVisible之间的紧密关联,但通常每个表单只会获得一个新的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有关 - 需要解释?