【wpf】Initialized 事件的使用

故事背景:

我自定义了一个元素,我想在构建元素的同时,设置Bindding,于是我把设置Bindding的部分写到

了元素的构造函数之中。

我在绑定的过程中,是涉及到了元素的某些属性的,但是在元素的构造函数被调用时,元素的很多属性还没有准备好(比如在Xaml中赋值的属性)从而导致binding工作不正常。

于是我想到了重写Onloaded方法,结果发现元素并没有这个方法可以被重新。

但是OnInitialized这个方法被我找到。这里截个图,介绍loaded和Initialized事件的区别:

 最后,我重写OnInitialized如下:

protected override void OnInitialized(EventArgs e)
{
    base.OnInitialized(e);
    //绑定必须写道OnInitialized中,而不能是构造函数中,OnInitialized被触发,表示该控件已经构造完成
    SetBackgroundBinding();
    SetTextBinding();
}

posted @ 2021-11-04 11:15  宋桓公  阅读(55)  评论(0编辑  收藏  举报