2009-08-26 2 views
8

У меня есть ClassA с ObservableCollection имущества, который реализует интерфейс INotifyPropertyChangedКогда WPF подписывается на событие PropertyChanged?

на моем окне я коде объявлен ClassA variable и инициализировать его в методе Main().

я бы ожидать, что variable.PropertyChanged бы событие WPF проводного к нему, но, видимо, PropertyChanged события остается нулевым

ответ

9

WPF будет подписаться на событие PropertyChanged при привязке к объекту. Это основной способ работы привязки данных.

На самом деле это делается через PropertyChangedEventManager с использованием WeakEvent pattern в WPF.

+0

Итак ... WPF будет также отказаться от подписки, когда связывание отбрасывается (поэтому во избежание утечки памяти)? –

+1

@ NéstorSánchezA. Он использует шаблон слабых событий, чтобы избежать утечки памяти. В общем, у вас не должно быть проблемы с утечкой из-за привязки WPF. –

1

Я не уверен, что это точно ответит на ваш вопрос, но у меня были похожие впечатления и о нем было написано here.

По существу, убедитесь, что DataContext не равно нулю, когда связывание происходит таким образом, что PropertyChanged события могут вернуться к UI ...