zoukankan      html  css  js  c++  java
  • 关于win8开发的一点小总结

    我今天做画面的时候,发现了一点小问题。

    我在xmal文件里面加了一个CheckBox控件,设置IsChecked属性为True,并添加了Checked事件。Checked事件里面有对另外一个TextBox的访问。

    这时候我运转程序,它会先走构造方法的InitializeComponent方法,然后就直接走到Checked事件,这时候可以看到TextBox是个null值,也就是说它还没被初期化。

    我的理解是InitializeComponent方法先初期化CheckBox,当初期化它的IsChecked属性时,先走到了Checked事件,然后跳出该事件再去初始化其他的控件。

    还有另外一种方式:

    我不在xaml文件里面设置IsChecked属性,当走完构造方法的InitializeComponent方法后,再去设置这个IsChecked属性为True。

    这个时候程序走完InitializeComponent方法,然后走到设置属性的地方之后,就会跳到Checked事件里面,这个时候TextBox是有值的,因为所有控件已经被初期化。

    接下来我再次打开这个画面,不去new,也就是不走InitializeComponent方法的情况下,无论哪种方式都不会再走到Checked事件里面。

    如果说第一种方式我理解(IsChecked属性放在xmal文件里,都不走InitializeComponent方法了,也就是说这个属性不被初期化的情况下,又怎么会走到Checked事件),第二种我就有点不懂了。

    第二种方式无论是第一次打开画面时,也是InitializeComponent方法已经走完了的情况下,才去设置的该属性,为什么它就能走到Checked事件,而第二次打开不走InitializeComponent方法的情况下,就走不进了呢?

  • 相关阅读:
    C# 控制反转(IOC: Inverse Of Control) & 依赖注入(DI: Independence Inject)
    英语常见短语汇总001
    ASP.Net Web.config 中引用外部config文件
    CSS样式汇总
    RSA非对称加密算法
    排序算法【2】——快速排序
    cmake引入boost
    boost之algorithm
    tar命令
    欧拉定理
  • 原文地址:https://www.cnblogs.com/summer1987/p/3958581.html
Copyright © 2011-2022 走看看