Tôi đang cố gắng tìm ra cách tốt nhất để bong bóng các sự kiện PropertyChanged từ các thuộc tính lồng nhau trong ModelView của tôi. Giả sử tôi có ModelView PersonModelView
có Thuộc tính PersonModelView.Address
. Address
lần lượt có một tài sản City
. Khi tôi liên kết với City
theo quan điểm của tôi, tôi sẽ làm điều gì đó như {Binding Address.City}
.Một cách hay để bong bóng sự kiện INotifyPropertyChanged thông qua các thuộc tính ViewModel với MVVM là gì?
Vấn đề của tôi là ngay cả khi Address
thực hiện INotifyPropertyChanged
, các ràng buộc sẽ không được cập nhật bởi vì nó được xử lý PropertyChanged
trên PersonModelView
, khôngAddress
. Tôi nghĩ rằng tôi có hai lựa chọn: (1) thay đổi nguồn của ràng buộc (hoặc thay đổi DataContext
) thành thuộc tính Address
hoặc (2) có PersonModelView
xử lý PropertyChanged
trên đối tượng Address
và tự mình khôi phục PropertyChanged
riêng của mình với một cái gì đó như Address.City
.
Các bạn giải quyết vấn đề này như thế nào? (Tôi đang sử dụng bộ công cụ ánh sáng MVVM tại mo, nhưng tôi quan tâm đến bất kỳ cách tiếp cận nào)
Tôi đồng ý. Tôi chưa bao giờ phải truyền bá các sự kiện khi một lĩnh vực một hoặc hai cấp bị ràng buộc. Hãy thử bắn 'PropertyChanged' với' null' làm tên thuộc tính và đặt một breakpoint trong setter thuộc tính của bạn để đảm bảo ràng buộc hoạt động (hoặc kiểm tra cửa sổ đầu ra). –
Đó là một cứu trợ thực sự, nó sẽ làm cho mã của tôi đẹp hơn nhiều. Tôi đoán tôi đã có một sai lầm khi tôi lần đầu tiên thử điều này, tôi chỉ làm điều đó một lần nữa trong một giải pháp mới và nó hoạt động tốt. Cảm ơn anh em về sự giúp đỡ! – Geoff