2016-06-04 3 views
0

У меня есть некоторые проблемы с этим кодом. Что я делаю не так?C# WPF DataGrid - ExpandoObject в цикле

List<dynamic> list = new List<dynamic>(); 
var collumnBind = columnBindName(); // {id, n0, n1, etc...} Name of Columns Bind 

list.Add(new ExpandoObject()); 

foreach (var c in collumnBind) 
{ 
    list[0].c = "something"; //not working in Datagrid 
    Console.Write(list[0].c); //in console i have "something" 
    list[0].id = "hello";  //working in Datagrid 
} 
+0

Что значит «не работает в DataGrid_»? 'list [0] .c' - это другой' c', а затем один в вашем цикле, если это то, что вы имеете в виду. Ваш объект будет иметь 2 свойства 'c' и' id' – dkozl

+0

, так что есть опция repleace 'c' для пропорций от' columnBind'? – zdunek25

ответ

2

Предполагая, что вы хотите установить имена свойств, определенные в пользовательском списке, а columnBindName какой-то string перечислимого вы можете использовать функцию, которая ExpandoObject реализует IDictionary<string, object> интерфейса, который позволяет получить/установить значение свойства по имени строки

foreach (var c in collumnBind) 
{ 
    (list[0] as IDictionary<string, object>)[c] = "property value"; 
}