Dapper 쿼리 결과를 WPF DataGrid에 어떻게 바인딩합니까

.net c# dapper data-binding wpf

문제

여기 내 코드가있다. 셀 수가 비어 있지만 행 수가 올바른 바운드 그리드를 생성합니다.

XAML

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

코드 숨김

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

수락 된 답변

docs 에서 구문 - cn.Query("sql") - 동적 유형의 객체 ( IEnumerable<dynamic> )의 목록을 반환합니다. DataGrid 자동 열은 해당 열을 생성하는 데 필요한 구체적인 멤버를 찾습니다. 속성을 매핑하고 cn.Query<SomeTableEntity>("select * from SomeTable"); 를 사용하여 SomeTable 에 대한 간단한 엔티티 클래스를 만드는 것이 좋습니다 cn.Query<SomeTableEntity>("select * from SomeTable"); .


전문가 답변

제네릭이 아닌 쿼리 버전을 사용하면 데이터의 동적 표현이 반환됩니다. 동적 API는 대부분의 UI 데이터 바인딩에 적합하지 않습니다. 일반 Query<T> API를 사용하여 속성을 정의한 유형에 데이터를로드하는 것이 좋습니다.

완전한 푸시 에서는 이론적으로 데이터에 ITypedList를 구현하고 이에 따라 속성을 공개 할 수도 있습니다. 하지만 그렇게 많은 이득을 얻지는 않습니다.



아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow