Как связать результат запроса Dapper с WPF DataGrid

.net c# dapper data-binding wpf

Вопрос

Вот мой код. Он создает связанную сетку с правильным количеством строк, однако ячейки пустые .

XAML

<DataGrid
  Name="grid" 
  ItemsSource="{Binding}"
  AutoGenerateColumns="True" />

Код позади

grid.DataContext = cn.Query("select * from SomeTable");

Принятый ответ

Из документов ваш синтаксис там - cn.Query("sql") - возвращает список объектов с динамической типизацией ( IEnumerable<dynamic> ). Это не будет работать для автоматических столбцов DataGrid, которые ищут конкретные элементы для генерации своих столбцов. Я бы предложил создать простой класс сущности для SomeTable для сопоставления свойств, а затем с помощью cn.Query<SomeTableEntity>("select * from SomeTable"); ,


Ответ эксперта

Если вы используете не-генерическую версию Query, она возвращает динамическое представление данных. Динамический API не подходит для большинства привязок данных пользовательского интерфейса. Было бы предпочтительнее использовать общий API Query<T> для загрузки данных в типы с определенными свойствами.

При полном толчке теоретически было бы возможно реализовать ITypedList по данным и соответствующим образом разоблачить свойства. Но это довольно много работы для не столько получения.



Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow