2009-08-26 38 views
8

Tôi có một ClassA với một tài sản ObservableCollection, mà thực hiện các giao diện INotifyPropertyChangedKhi nào WPF đăng ký sự kiện PropertyChanged?

trên codebehind cửa sổ của tôi, tôi đã tuyên bố một ClassA variable, và khởi tạo nó trong phương thức Main().

tôi mong đợi rằng variable.PropertyChanged sẽ có một sự kiện WPF dây với nó, nhưng dường như sự kiện PropertyChanged vẫn vô

Trả lời

9

WPF sẽ đăng ký sự kiện PropertyChanged khi bạn liên kết với đối tượng của bạn. Đây là cách cốt lõi mà databinding hoạt động.

Thực tế việc này thực hiện thông qua số PropertyChangedEventManager bằng cách sử dụng WeakEvent pattern trong WPF.

+0

... Vì vậy, WPF cũng sẽ huỷ đăng ký khi các ràng buộc bị loại bỏ (do đó tránh rò rỉ bộ nhớ)? –

+1

@ NéstorSánchezA. Nó sử dụng mẫu sự kiện yếu để tránh rò rỉ bộ nhớ. Nói chung, bạn không nên có vấn đề rò rỉ do ràng buộc WPF. –

1

Tôi không chắc liệu điều này có trả lời chính xác câu hỏi của bạn hay không, nhưng tôi có những trải nghiệm tương tự và viết blog về nó here.

Về cơ bản, đảm bảo DataContext là không null khi xảy ra sự ràng buộc, như vậy mà PropertyChanged sự kiện có thể trở lại giao diện người dùng ...

Các vấn đề liên quan