Por que eu não pode vincular o WPFToolkit DataGrid ItemsSource para DataTable?
-
20-08-2019 - |
Pergunta
Num controlo Telerik
, que foi capaz de se ligar a um DataTable
directamente para o ItemSource
, mas quando I transferido para o WPFToolkit
Datagrid
Codeplex:
<dg:DataGrid Name="theGrid"/>
---
theGrid.ItemsSource = dt;
Eu recebo este erro:
Cannot implicitly convert type 'System.Data.DataTable' to 'System.Collections.IEnumerable'.
Como posso vincular o DataTable
para WPFToolkit
theDataGrid
?
Solução
Você terá que projetar sua tabela de dados em algo que implementa IEnumerable como que é waht o DataGrid espera. A grade é uma implementação diferente para a versão Telerik então é difícil esperar que a mesma funcionalidade de ambos.
Outras dicas
Acho que a maneira mais fácil é:
myDataGrid.ItemsSource = myDataTable.DefaultView;
porque DefaultView implementa IEnumerable
Estou assumindo para este será adicionado no futuro, mas por agora você pode usar a implementação de IListSource
em DataTable
. Chame o método GetList()
e usar isso como sua fonte de dados. É uma implementação de interface explícita para que você vai precisar elenco:
var data = (myDataTable as IListSource).GetList();
Em tais casos I ligam-se a ItemsSource DataContex em XAML i.e.
ItemsSource={Binding}
e, em seguida, em codebehind eu faço
theGrid.DataContext = dt
Isso vai ajudar.