2009-08-26 107 views
8

我有一個ObservableCollection財產ClassA,實現了INotifyPropertyChanged接口WPF何時訂閱PropertyChanged事件?

在我的窗口代碼隱藏

我已經聲明瞭一個ClassA variable,並在main()方法進行初始化。

我期望variable.PropertyChanged將有一臺連接到它一個WPF事件,但顯然PropertyChanged事件保持爲空

回答

9

在綁定到你的對象WPF將訂閱PropertyChanged事件。這是數據綁定工作的核心方式。

它實際上是通過PropertyChangedEventManager使用WPF中的WeakEvent pattern來實現的。

+0

所以......被丟棄綁定時,WPF也將取消(從而避免內存泄漏)? – 2012-03-20 18:46:12

+1

@NéstorSánchezA。它使用弱事件模式來避免內存泄漏。一般來說,由於WPF綁定,你不應該有泄漏問題。 – 2012-03-20 19:03:23

1

我不確定這是否完全回答你的問題,但我有類似的經歷,並且有關於此的博客here

從本質上講,確保當綁定發生在DataContext不爲空,這樣的PropertyChanged事件可以得到回UI ...