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");を使用する単純なエンティティクラスを作成することをお勧めしcn.Query<SomeTableEntity>("select * from SomeTable");


エキスパート回答

クエリの非ジェネリック版を使用すると、データの動的表現が返されます。動的APIは、ほとんどのUIデータバインディングには適していません。一般的なQuery<T> APIを使用して、プロパティを定義した型にデータをロードすることが望ましいでしょう。

完全にプッシュすると、データにITypedListを実装し、それに応じてプロパティを公開することも理論的に可能です。しかしそれほど多くの利益のためにはかなり多くの仕事があります。



ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ