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?

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top