Как динамически генерировать столбцы в WPF DataGrid?
Я пытаюсь отобразить результаты запроса в таблице данных WPF. Тип ItemsSource, с которым я связанIEnumerable
, Поскольку возвращенные поля не определены до времени выполнения, я неНе знаю тип данных, пока запрос не будет оценен. Другстрока" возвращается какExpandoObject
с динамическими свойствами, представляющими поля.
Я надеялся, чтоAutoGenerateColumns
(как показано ниже) сможет генерировать столбцы изExpandoObject
как это происходит со статическим типом, но это не похоже на.
Есть ли какой-либо способ сделать это декларативно, или я должен обязательно подключиться с некоторым C #?
РЕДАКТИРОВАТЬ
Хорошо, это даст мне правильные столбцы:
// ExpandoObject implements IDictionary
IEnumerable rows = dataGrid1.ItemsSource.OfType();
IEnumerable columns = rows.SelectMany(d => d.Keys).Distinct(StringComparer.OrdinalIgnoreCase);
foreach (string s in columns)
dataGrid1.Columns.Add(new DataGridTextColumn { Header = s });
Так что теперь просто нужно выяснить, как связать столбцы со значениями IDictionary.