Trong ứng dụng Windows Store của tôi, tôi có một danh sách được điền bằng ExpandoObjects. công trình ràng buộc dữ liệu tốt cho các giá trị ban đầu, nhưng không phải cho một tài sản hình ảnh tôi đặt asyncronously sau một tập tin đã được tải về:Liên kết với ExpandoObject. PropertyChanged không hoạt động
public static async void Set<T>(this ExpandoObject thisObject, string property, Func<Task<T>> setter) {
var expando = thisObject as IDictionary<string, Object>;
if (!expando.ContainsKey(property)) {
expando.Add(property, null);
}
expando[property] = await setter.Invoke();
}
Hooking lên đến sự kiện PropertyChanged trên ExpandoObject xác nhận rằng nó là bắn cho tất cả các đối tượng. Thuộc tính mới được gắn vào đối tượng và giá trị là chính xác, nhưng các mục trong ListView không được cập nhật đầy đủ.
Danh sách chứa 14 đối tượng. Nếu tôi sử dụng các đối tượng được gõ thường xuyên thay vì ExpandoObjects và sử dụng cùng một cài đặt không đồng bộ của thuộc tính hình ảnh, một số trong số 14 đối tượng được cập nhật trong dạng xem (đối tượng không hiển thị). Nếu tôi thực hiện INotifyPropertyChanged trong lớp, tất cả 14 được cập nhật. Sử dụng ExpandoObjects Tôi nhận được hành vi chính xác như với các đối tượng đã nhập không có INPC: các mục hiện không hiển thị được cập nhật.
Vì vậy, có vẻ như PropertyChanged không hoạt động với ExpandoObject và ràng buộc dữ liệu.
Nó hoạt động như dự định trong WPF, nhưng không phải trong một ứng dụng cửa hàng. Xem so sánh: https://sites.google.com/site/moramatte/ExpandoComparison.zip?attredirects=0&d=1
PropertyChanged works in ExpandoObject, xem mẫu đơn giản [here] (http://pastebin.com/pyKCiGG4). Vấn đề phải là cái gì đó khác. Vui lòng cung cấp một ví dụ nhỏ nhưng đầy đủ để tái tạo hành vi này. –
Nó hoạt động như dự định trong WPF, nhưng không hoạt động trong một ứng dụng cửa hàng. Hãy xem so sánh đơn giản của tôi: https://sites.google.com/site/moramatte/ExpandoComparison.zip?attredirects=0&d=1 – user958578
Tôi đã gửi lỗi Kết nối: https://connect.microsoft.com/VisualStudio/feedback/ chi tiết/836252/databinding-in-windows-store-apps-to-an-expandoobject-thay đổi-thông báo-không hoạt động –