Событие INotifyPropertyChanged PropertyChangedEventHandler всегда равно нулю

Я реализовал 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));
            }
        }
    }

Когда свойство 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();
}

Но обработчик всегда имеет значение NULL, поскольку PropertyChanged имеет значение NULL. Есть идеи, как заставить это работать?

Большое спасибо.

6
задан Maya 20 February 2011 в 16:30
поделиться