为什么在实现iNotifyPropertyChanged时检查PropertyChanged事件的空值?

时间:2013-04-19 10:13:13

标签: c# mvvm

我正在详细阅读iNotifyPropertyChanged。

有人可以澄清我们为什么需要检查 PropertyChanged !=null

为什么事件会为空?或者换句话说,为什么甚至检查它是否为空?调用NotifyPropertyChanged的唯一时间是PropertyChanged被引发(因此它不能为空),不是它。谁/什么可以使它为空?

    public event PropertyChangedEventHandler PropertyChanged;

    private void NotifyPropertyChanged(string info)
    {
        if (PropertyChanged != null)
        {
            PropertyChanged(this,new PropertyChangedEventArgs(info));
        }

    }

谢谢。

1 个答案:

答案 0 :(得分:9)

如果没有人订阅该活动,则该活动将为空。因此,如果不这样做,您将在运行时获得事件的NullReferenceException。

对于您正在谈论的界面,它也可能会在订阅者有机会订阅之前发生,尽管他们将要订阅,因为INotifyPropertyChanged界面非常繁琐。