2

我希望绑定到一个根据下面的代码动态公开其属性的类。似乎 ICustomTypeProvider 和 DynamicObject 都适用于此。任何人都可以解释为什么我可能想使用一个而不是另一个?

void CreateDynamicItem()
    {
        var di = new DynamicItem();
        di.AddProperty("Age", 16, typeof(int));
        di.AddProperty("Height", 5.2, typeof(double));
    }

<StackPanel>
    <Slider Value="{Binding Age}" />
    <Slider Value="{Binding Height}" />
</StackPanel>
4

1 回答 1

4

我在“WPF 和 DLR 怎么样?”下找到了使用 ICustomTypeProvider 绑定到动态属性的答案。

DLR 对象,例如 ExpandoObject 或 DynamicObject(或 IDynamicMetaObjectProvider 接口的任何其他实现)不携带其属性的任何类型信息。另一方面,数据绑定引擎需要获取此信息才能对 String 以外的任何内容执行类型转换。

于 2014-03-18T13:16:34.223 回答