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 <=> <=>?

È stato utile?

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à.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top