Как использовать что-то похожее на DynamicObject в Silverlight 3 / WP7? - PullRequest
2 голосов
/ 05 января 2011

Как вы можете использовать Dynamic Language Runtime (DLR) или что-то еще для имитации System.Dynamic.DynamicObject в SILVERLIGHT 3 (!) И WP7 (без C # 4.0!) ..

Что я хочу сделатьреализует автоматически динамически создаваемые свойства для привязки данных.

Ответы [ 2 ]

2 голосов
/ 05 января 2011

DLR можно использовать с WP7.
Iron Ruby поддерживает Windows Phone 7 от версии 1.1 .

DynamicObject был доступен как расширение до .Net 4.0

Если вы счастливы использовать язык, отличный от C #, тогда это может быть вариант.
Хорошая статья об использовании IronRuby в Windows Phone 7 на http://msdn.microsoft.com/en-us/magazine/ff960707.aspx.

В качестве альтернативы, вы могли бы использовать анонимные типы, а не динамические? Я предполагаю, что не существует бесконечного количества вариантов, к которым вы потенциально можете привязаться.

Если вы хотите использовать анонимные типы, вы должны установить

[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("System.Windows")]

чтобы разрешить платформе разрешать привязки.

Предположительно, вы получаете динамические объекты из внешней системы. Не могли бы вы добавить слой оболочки между вашим приложением и внешней системой, чтобы превратить объекты в POCO, а не в динамические объекты.

0 голосов
/ 05 января 2011

Как вы упомянули, DLR с .Net 4.0 и C# 4.0 недоступно в WP7.Это означает, что вы не можете сделать это.По крайней мере, нелегко.

Silverlight не допускает пользовательских расширений разметки (things between {}).Так что это тоже не вариант.

Что вы можете сделать, это создать пользовательский Behaviors для привязки и заставить их работать с Dictionaries, который может содержать столько свойств и значений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...