У меня есть набор "динамических данных", которые мне нужно привязать к GridControl. До сих пор я использовал стандартный класс DataTable, который является частью пространства имен System.Data. Это отлично работает, но мне сказали, что я не могу использовать это, поскольку он слишком тяжел для сериализации по сети между клиентом и сервером.
Итак, я подумал, что могу легко реплицировать "вырезанную" версию класса DataTable, просто имея тип List<Dictionary<string, object>>
, посредством которого List представляет коллекцию строк, и каждый Словарь представляет одну строку с именами столбцов и значения как тип KeyValuePair. Я мог бы настроить Grid, чтобы свойства столбца DataField соответствовали свойствам ключей в словаре (точно так же, как я делал для имен столбцов DataTable.
Однако после выполнения
gridControl.DataSource = table;
gridControl.RefreshDataSource();
В сетке нет данных...
Мне кажется, мне нужно реализовать IEnumerator
- любая помощь по этому поводу была бы высоко оценена!
Пример кода вызова выглядит следующим образом:
var table = new List<Dictionary<string,object>>();
var row = new Dictionary<string, object>
{
{"Field1", "Data1"},
{"Field2", "Data2"},
{"Field3", "Data3"}
};
table.Add(row);
gridControl1.DataSource = table;
gridControl1.RefreshDataSource();