在WPF中,您可以绑定ExpandoObject和其他动态类型:
dynamic o = new ExpandoObject();
o.Foo = "Hello";
DataContext = o;
<TextBlock Text="{Binding Foo}"/>
这在Silverlight 5中不起作用。有没有办法让它工作或有没有人有这个问题的链接?
答案 0 :(得分:4)
在Silverlight 5中,他们没有添加绑定到动态对象的默认机制,而是添加了一个新接口ICustomTypeProvider
。并且该接口也没有添加到ExpandoObject,但是使用expando,您应该能够使用索引器绑定,因为它是IDictionary<string, object>
,它实现了INotifyPropertyChanged
。
<TextBlock Text="{Binding [Foo]}"/>