¿Por qué no puedo enlazar el WPFToolkit DataGrid ItemSource a DataTable?
-
20-08-2019 - |
Pregunta
En un Telerik
control, yo era capaz de enlazar una DataTable
directamente a la ItemSource
, pero cuando me cambié a la de Codeplex WPFToolkit
Datagrid
:
<dg:DataGrid Name="theGrid"/>
---
theGrid.ItemsSource = dt;
Me sale este error:
Cannot implicitly convert type 'System.Data.DataTable' to 'System.Collections.IEnumerable'.
¿Cómo puedo enlazar el DataTable
a laWPFToolkit
DataGrid
?
Solución
Tendrá que proyectar su tabla de datos en algo que implemente IEnumerable, ya que eso es lo que DataGrid espera. La cuadrícula es una implementación diferente a la versión de Telerik, por lo que es difícil esperar la misma funcionalidad de ambos.
Otros consejos
Creo que la forma más fácil es:
myDataGrid.ItemsSource = myDataTable.DefaultView;
porque DefaultView implementa IEnumerable
Estoy asumiendo apoyo para esto se añadirá en el futuro, pero por ahora se puede utilizar la aplicación de IListSource
en DataTable
.Llame a la GetList()
método y utilizarlo como origen de datos.Es una explícita implementación de la interfaz para que usted necesitará reparto:
var data = (myDataTable as IListSource).GetList();
En tales casos, asocio ItemsSource a DataContex en XAML, es decir,
ItemsSource={Binding}
y luego en codebehind lo hago
theGrid.DataContext = dt
Esto ayudará.