2010-10-09 24 views
7

Tôi có thể buộc cửa sổ đánh giá lại tất cả các ràng buộc và xác thực của cửa sổ không?WPF: Tôi có thể buộc cửa sổ đánh giá lại tất cả các ràng buộc và xác thực của cửa sổ không?

Vì lý do nào đó, dường như bỏ qua INotifyPropertyChanged.PropertyChanged trong một tình huống lạ và tôi đang tìm một công việc xung quanh để sử dụng cho đến khi tôi tìm ra nguyên nhân thực sự.

Trả lời

5

Tăng PropertyChanged với String.Empty làm tên thuộc tính. Điều này sẽ gây ra tất cả các ràng buộc trong đối tượng để đọc lại tất cả các ràng buộc của nó.

Nếu bạn đang gặp vấn đề ràng buộc, đừng quên kiểm tra cửa sổ Đầu ra của bạn để biết các lỗi ràng buộc

8

Thật không may, tôi biết không có cách nào để buộc mọi ràng buộc trong một cửa sổ phải đánh giá lại. Một phần của vấn đề là hầu hết các ràng buộc không được khai báo trên Window, mà đúng hơn là trên các phần tử DependencyObject cụ thể của Window.

Bạn có thể sử dụng DependencyObject.InvalidateProperty để vô hiệu hóa một ràng buộc duy nhất, nhưng điều này phải được thực hiện trên thuộc tính theo cơ sở tài sản. Nếu chỉ có một vài đối tượng bị ràng buộc, bạn sẽ có thể sử dụng điều này để buộc một requery của các giá trị của họ.

Điều đó đang được nói, tôi sẽ đề xuất tìm ra nguyên nhân gốc - đó có thể là giải pháp tốt hơn trong thời gian dài.

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