在我的Windows應用商店應用程序中,我有一個用ExpandoObjects填充的列表。精爲初始值,但不適合我asyncronously設置文件下載後的圖像屬性的數據綁定的工作方式:綁定到ExpandoObject。 PropertyChanged不起作用
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();
}
掛鉤對ExpandoObject PropertyChanged事件證明了它是爲所有對象解僱。 新屬性附加到對象並且值是正確的,但ListView中的項目未完全更新。
該列表包含14個對象。如果我使用常規類型對象而不是ExpandoObjects並使用圖像屬性的同一異步設置,則14個對象中的一些會在視圖中更新(當前不可見)。如果我在類中實現了INotifyPropertyChanged,則所有14都會更新。 使用ExpandoObjects我得到了與沒有INPC的類型對象一樣的確切行爲:更新當前不可見的項目。
所以看來PropertyChanged不能與ExpandoObject和數據綁定一起工作。
它在WPF中按預期運行,但不在Store應用程序中運行。見比較: https://sites.google.com/site/moramatte/ExpandoComparison.zip?attredirects=0&d=1
PropertyChanged在ExpandoObject中工作,看簡單示例[這裏](http://pastebin.com/pyKCiGG4)。問題一定是別的。請提供一個小而完整的例子來重現這種行爲。 –
它在WPF中按預期運行,但不在Store應用程序中運行。看看我的簡單比較:https://sites.google.com/site/moramatte/ExpandoComparison.zip?attredirects=0&d=1 – user958578
我提交了一個連接錯誤:https://connect.microsoft.com/VisualStudio/feedback/細節/ 836252 /數據綁定功能於Windows的商店的應用程序到一個-expandoobject變更通知 - 不工作 –