小编use*_*578的帖子

绑定到ExpandoObject.PropertyChanged无法正常工作

在我的Windows应用商店应用中,我有一个填充了ExpandoObjects的列表.数据绑定适用于初始值,但不适用于我在下载文件后异步设置的图像属性:

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();
    }
Run Code Online (Sandbox Code Playgroud)

在ExpandoObject上连接到PropertyChanged事件确认它是针对所有对象触发的.新属性附加到对象,值正确,但ListView中的项目未完全更新.

该列表包含14个对象.如果我使用常规类型对象而不是ExpandoObjects并使用相同的图像属性异步设置,则14个对象中的一些将在视图中更新(当前不可见的对象).如果我在类中实现了INotifyPropertyChanged,那么所有14个都会更新.使用ExpandoObjects我得到的确切行为与没有INPC的类型对象一样:更新当前不可见的项目.

所以似乎PropertyChanged不使用ExpandoObject和数据绑定.

它在WPF中按预期工作,但不在Store App中工作.查看比较:https: //sites.google.com/site/moramatte/ExpandoComparison.zip ?attredirects = 0&d = 1

.net binding dynamic expandoobject

31
推荐指数
1
解决办法
3099
查看次数

标签 统计

.net ×1

binding ×1

dynamic ×1

expandoobject ×1