5

我正在详细阅读 iNotifyPropertyChanged。

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

为什么事件会为空?或者换句话说,为什么还要检查它是否为空?唯一NotifyPropertyChanged被调用的时间是何时PropertyChanged被提升(所以它不能为空),不是吗。谁/什么可以使它无效?

    public event PropertyChangedEventHandler PropertyChanged;

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

    }

谢谢你。

4

1 回答 1

9

如果没有人订阅该事件,它将为空。因此,如果您不这样做,您将在运行时收到有关事件的 NullReferenceException。

对于您正在谈论的界面,它也可能会在订阅者有机会订阅之前发生引发动作,尽管他们即将订阅,因为 INotifyPropertyChanged 接口非常健谈。

于 2013-04-19T10:16:51.840 回答