Perché non riesco a associare l'oggetto DataSource WGrFToolkit a DataTable?
-
20-08-2019 - |
Domanda
In un controllo Telerik
, sono stato in grado di associare un DataTable
direttamente al ItemSource
, ma quando sono passato al Codeplex WPFToolkit
Datagrid
:
<dg:DataGrid Name="theGrid"/>
---
theGrid.ItemsSource = dt;
Ottengo questo errore:
Cannot implicitly convert type 'System.Data.DataTable' to 'System.Collections.IEnumerable'.
Come posso associare DataGrid
a <=> <=>?
Soluzione
Dovrai proiettare il tuo datatable in qualcosa che implementa IEnumerable come quello che si aspetta DataGrid. La griglia è un'implementazione diversa dalla versione di Telerik, quindi è difficile aspettarsi la stessa funzionalità da entrambi.
Altri suggerimenti
Trovo che il modo più semplice sia:
myDataGrid.ItemsSource = myDataTable.DefaultView;
perché DefaultView implementa IEnumerable
Suppongo che il supporto verrà aggiunto in futuro, ma per ora puoi utilizzare l'implementazione di IListSource
su DataTable
. Chiama il metodo GetList()
e usalo come fonte di dati. È un'implementazione esplicita dell'interfaccia, quindi dovrai lanciare:
var data = (myDataTable as IListSource).GetList();
In questi casi associo ItemsSource a DataContex in XAML, ad esempio
ItemsSource={Binding}
e poi in codebehind I do
theGrid.DataContext = dt
Questo aiuterà.