2009-02-20 3 views
3

У меня есть набор объектов данных, которые я использую для привязки данных, которые реализуют интерфейс 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, поэтому никаких свойств зависимостей и т. Д. Не допускается.

ответ

1

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

Чтобы повторить, вы должны только поднять событие PropertyChanged при изменении значения свойства, а не при изменении свойств дочернего элемента. Код примера, который вы указали, - это все ваши наборы свойств.

Смежные вопросы