Warum kann ich nicht die WPFToolkit Datagrid Itemssource binden Datatable?
-
20-08-2019 - |
Frage
In einer Telerik
Kontrolle, konnte ich eine DataTable
direkt an die ItemSource
binden, aber wenn ich auf die Codeplex WPFToolkit
Datagrid
geschaltet:
<dg:DataGrid Name="theGrid"/>
---
theGrid.ItemsSource = dt;
Ich bekomme diese Fehlermeldung:
Cannot implicitly convert type 'System.Data.DataTable' to 'System.Collections.IEnumerable'.
Wie kann ich binden den DataTable
WPFToolkit
theDataGrid
?
Lösung
Sie werden Ihre Datentabelle in etwas projizieren, die IEnumerable implementiert, wie das ist waht das Datagrid erwartet. Das Gitter ist eine andere Implementierung der Telerik Version so seine harten die gleiche Funktionalität von beiden zu erwarten.
Andere Tipps
Ich finde, ist der einfachste Weg:
myDataGrid.ItemsSource = myDataTable.DefaultView;
da Default implementiert IEnumerable
Ich gehe davon aus Unterstützung dafür wird in der Zukunft hinzugefügt werden, aber jetzt können Sie die Implementierung von IListSource
auf DataTable
verwenden. Rufen Sie die GetList()
Methode und verwenden, die als Datenquelle. Es ist eine explizite Schnittstellenimplementierung so dass Sie werfen müssen:
var data = (myDataTable as IListSource).GetList();
In solchen Fällen band ich Itemssource zu DataContex in XAML d
ItemsSource={Binding}
und dann in Code-Behind mich
theGrid.DataContext = dt
Dies wird helfen.