왜 wpftoolkit datagrid itemsource를 dataTable에 바인딩 할 수 없습니까?
-
20-08-2019 - |
문제
안에 Telerik
통제, 나는 묶을 수 있었다 DataTable
직접 ItemSource
, 그러나 코드 플렉스로 전환했을 때 WPFToolkit
Datagrid
:
<dg:DataGrid Name="theGrid"/>
---
theGrid.ItemsSource = dt;
이 오류가 발생합니다.
Cannot implicitly convert type 'System.Data.DataTable' to 'System.Collections.IEnumerable'.
어떻게 묶을 수 있습니까? DataTable
~로WPFToolkit
DataGrid
?
해결책
DataGrid가 기대하는 것처럼 Ienumerable을 구현하는 데 데이터 가능을 투사해야합니다. 그리드는 Telerik 버전과는 다른 구현이므로 두 가지 기능을 동일한 기능을 기대하기가 어렵습니다.
다른 팁
가장 쉬운 방법은 다음과 같습니다.
myDataGrid.ItemsSource = myDataTable.DefaultView;
DefaultView는 ienumerable을 구현하기 때문입니다
나는 이것에 대한 지원이 향후 추가 될 것이라고 가정하지만 지금은 구현을 사용할 수 있습니다. IListSource
~에 DataTable
. 를 불러 GetList()
방법을 사용하여 데이터 소스로 사용하십시오. 명백한 인터페이스 구현이므로 캐스트해야합니다.
var data = (myDataTable as IListSource).GetList();
그러한 경우 XAML IE의 DataContex에 항목 소스를 바인딩합니다.
ItemsSource={Binding}
그리고 Codebehind에서 나는한다
theGrid.DataContext = dt
이것은 도움이 될 것입니다.
제휴하지 않습니다 StackOverflow