none
关于System.NullReferenceException RRS feed

  • 问题


  •         private void Platform_SelectionChanged(object sender, SelectionChangedEventArgs e)
            {
                if (platformResult == null)
                {
                    return;
                }
                var _combobox = (ComboBox)sender;
                var comboboxitem = (ComboBoxItem)_combobox.SelectedItem;
                platformResult.Text = comboboxitem.Content.ToString();
            }
    

    请问platformResult == null的意思是什么?我尝试注释掉这一段就会抛出System.NullReferenceException

    这里platformResult 是一个TextBlock的实例。

    2016年11月27日 7:57

答案

  • 应该是在页面初始化完成前,SelectionChanged事件就被触发了一次。这时候判断 platformResult为null,就跳出方法就可以了。


    希望我的答案能帮助更多的人。

    2016年11月30日 9:11
    版主

全部回复

  • 应该是在页面初始化完成前,SelectionChanged事件就被触发了一次。这时候判断 platformResult为null,就跳出方法就可以了。


    希望我的答案能帮助更多的人。

    2016年11月30日 9:11
    版主
  • 请问platformResult为null如何理解?也就是对于这个textbox类的实例来说null的意思是什么?是某个属性的值为null还是?

    platformResult为null可否理解为判断下platformResult的状态是否可写?

    2016年12月6日 14:33
  • 你可以看一下 InitializeComponent(); 方法里的实现过程。

    ComboBox 和 TextBlock 会按照xaml中的编写顺序初始化,也就是说当 ComboBox 的 SelectionChanged 事件注册并触发时,TextBlock 还没有被初始化,所以是 null。


    希望我的答案能帮助更多的人。

    2016年12月7日 2:42
    版主