我希望绑定到一个类,该类按照下面的代码动态公开其属性。看来 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>
我在这里找到了答案 使用 ICustomTypeProvider 绑定到动态属性 在“WPF 和 DLR 怎么样?”下
DLR 对象(例如 ExpandoObject 或 DynamicObject)(或 IDynamicMetaObjectProvider 接口的任何其他实现)不携带其属性的任何类型信息。另一方面,数据绑定引擎需要获取此信息才能对字符串以外的任何内容执行类型转换。