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?

¿Fue útil?

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top