在我的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变更通知 - 不工作 –