Как привязать данные сетки к ExpandoObject - PullRequest
8 голосов
/ 20 января 2011

Когда я пытаюсь привязать ASP.NET GridView к IEnumerable<ExpandoObject>, используя ObjectDataSource, я получаю следующее исключение.

System.Web.HttpException (0x80004005):Привязка данных: «System.Dynamic.ExpandoObject» не содержит свойства с именем «StoreID».

Кто-нибудь знает, как я могу привязать данные к ExpandoObjects?

1 Ответ

6 голосов
/ 28 февраля 2011

Фреймворк с открытым исходным кодом Impromptu-Interface может сделать это. У него есть метод для предоставления динамических свойств объекта для отражения путем передачи словаря имен свойств-> типов.

IEnumerable<dynamic> tProxiedObject = listOfExpandos.Select(x=>Impromptu.ActLikeProperties(x, x.ToDictionary(k=>k.Key,v=>typeof(object))));
...