2009-08-26 12 views
8

Mam ClassA z własności ObservableCollection, który implementuje INotifyPropertyChanged interfejsuKiedy WPF subskrybuje zdarzenie PropertyChanged?

na moim oknie kodzie mam ogłoszony ClassA variable i zainicjować go w metodzie main().

chciałbym oczekiwać, że variable.PropertyChanged miałoby zdarzenie WPF podłączone do niego, ale widocznie zdarzenie PropertyChanged pozostaje zerowy

Odpowiedz

9

WPF będzie subskrybować zdarzenie PropertyChanged, gdy powiąże do obiektu. To jest podstawowy sposób, w jaki działa wiązanie danych.

To faktycznie robi to poprzez PropertyChangedEventManager przy użyciu WeakEvent pattern w WPF.

+0

Więc ... WPF będzie również wypisać gdy wiązanie jest odrzucana (a więc unikając wycieki pamięci)? –

+1

@ NéstorSánchezA. Używa słabego wzorca zdarzeń, aby uniknąć wycieku pamięci. Generalnie nie powinieneś mieć problemu z wyciekiem z powodu wiązania WPF. –

1

Nie jestem pewien, czy to dokładnie odpowiada na twoje pytanie, ale miałem podobne doświadczenia i blogowałem o tym here.

Zasadniczo, upewnij się, że DataContext nie jest zerowy, gdy występuje wiązanie, dzięki czemu zdarzenia PropertyChanged może wrócić do interfejsu ...

Powiązane problemy