2012-06-04 4 views
4

В WPF можно связать с ExpandoObject и других динамических типов:Связывание ExpandoObject в Silverlight

dynamic o = new ExpandoObject(); 
    o.Foo = "Hello"; 
    DataContext = o; 

<TextBlock Text="{Binding Foo}"/> 

Это не работает в Silverlight 5. Есть ли способ, чтобы заставить его работать или кто-нибудь есть ссылки на Эта проблема?

ответ

4

В Silverlight 5 они не добавили механизм по умолчанию для привязки к динамическим объектам и вместо этого добавили новый интерфейс ICustomTypeProvider. И этот интерфейс не был добавлен в ExpandoObject, но с помощью expando вы должны использовать привязку индексатора, так как это IDictionary<string, object>, который реализует INotifyPropertyChanged.

<TextBlock Text="{Binding [Foo]}"/> 
+0

Спасибо, что упомянул ICustomTypeProvider. – John

Смежные вопросы