Что мне делать с INotifyPropertyChanged при изменении дочернего списка

У меня есть набор объектов данных, которые я использую для привязки данных, реализующих интерфейс INotifyPropertyChanged, и я пытаюсь понять, что делать со свойствами сложного типа.

Если у меня есть что-то вроде


class C {
 private string text;
 public string Text {
  get { return text; }
  set {
   if(Text != value) {
    text = value;
    OnPropertyChanged("Text");
   }
  }
 }
}

Я знаю, что делать, но что, если свойство изменчиво, предположительно, я должен также уведомлять об изменениях типа.

Если само свойство реализует INotifyPropertyChanged, предположительно, я могу обработать это событие и поднять его, но должен ли я делать то же самое, если возникает ListChangedEvent (скажем, это IBindingList)?

Это .NET 2.0, поэтому свойства зависимостей и т. д. не разрешены.


person Community    schedule 20.02.2009    source источник


Ответы (1)


Если у вас есть свойство, предоставляющее сложный тип, вам не нужно вызывать событие PropertyChanged при изменении свойства сложного типа, только при изменении экземпляра на сложный тип. Сложный тип должен вызывать собственное событие PropertyChanged при изменении одного из его свойств (вам не нужно передавать событие родительскому объекту).

Повторим еще раз: вы должны вызывать событие PropertyChanged только при изменении значения свойства, а не при изменении дочерних свойств. Предоставленный вами пример кода — это то, как должны выглядеть все ваши наборы свойств.

person Brian    schedule 21.02.2009