2009-08-26 13 views
8

Ho un ClassA con una proprietà ObservableCollection, che implementa l'interfaccia INotifyPropertyChangedQuando WPF si iscrive all'evento PropertyChanged?

sulla mia finestra codebehind ho dichiarato un ClassA variable, e inizializzare nel metodo Main().

mi aspetto che variable.PropertyChanged avrebbe un evento WPF cablato ad esso, ma a quanto pare l'evento PropertyChanged rimane nullo

risposta

9

WPF sottoscriverà l'evento PropertyChanged quando si associa al vostro oggetto. Questo è il modo principale con cui funziona il databinding.

Effettua questo tramite il PropertyChangedEventManager utilizzando il WeakEvent pattern in WPF.

+0

Quindi ... WPF sarà anche cancellare l'iscrizione quando viene scartato il legame (evitando così perdite di memoria)? –

+1

@ NéstorSánchezA. Usa il pattern di evento debole per evitare la perdita di memoria. In generale, non si dovrebbe avere un problema di perdita a causa del binding WPF. –

1

Non sono sicuro che questo risponda esattamente alla tua domanda, ma ho avuto esperienze simili e ne ho parlato in blocco here.

In sostanza, assicurarsi che il DataContext non è nullo quando si verifica l'associazione, in modo tale che gli eventi PropertyChanged può tornare all'interfaccia utente ...

Problemi correlati