INotifyPropertyChanged PropertyChangedEventHandler事件始终为null

May*_*aya 6 c# events delegates .net-4.0 inotifypropertychanged

我已将INotifyPropertyChanged实现到以下类

 public class FactoryItems : INotifyPropertyChanged
    {
        public event PropertyChangedEventHandler PropertyChanged;

        string symbol;
        public string Symbol
        {
            get { return symbol; }
            set { symbol = value; OnPropertyChanged("Symbol"); }
        }

        public FactoryItems()
        {

        }

        protected void OnPropertyChanged(string name)
        {
            PropertyChangedEventHandler handler = PropertyChanged;
            if (handler != null)
            {
                handler(this, new PropertyChangedEventArgs(name));
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

当Symbol属性更改时,事件触发没有问题,但PropertyChanged事件始终为null,此类仅实例化一次,我在构造函数上放置了一个断点以确保它的大小写.

在另一个类中,这是我订阅它的方式:

Data.Tables.FactoryItems = new Data.FactoryItems();
Data.Tables.FactoryItems.PropertyChanged += 
new System.ComponentModel.PropertyChangedEventHandler(FactoryItems_SymbolChanged);

void FactoryItems_SymbolChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
{
  doSomething();
}
Run Code Online (Sandbox Code Playgroud)

但是,当PropertyChanged为null时,处理程序始终为null.知道如何让这个工作吗?

非常感谢.

SLa*_*aks 5

您正在订阅某个特定实例上的活动.
这不会影响任何其他实例.

要查看所有实例的更改,可以使用静态事件.
请注意,任何订阅静态事件的类都将永远保留在内存中.