Вопрос

В Telerik контроль, я смог связать DataTable непосредственно к ItemSource, но когда я переключился на Codeplex WPFToolkit Datagrid:

<dg:DataGrid Name="theGrid"/>
---
theGrid.ItemsSource = dt;

Я получаю эту ошибку:

Cannot implicitly convert type 'System.Data.DataTable' to 'System.Collections.IEnumerable'.

Как я могу связать DataTable к томуWPFToolkit DataGrid?

Это было полезно?

Решение

Вам нужно будет спроецировать свой datatable во что-то, что реализует IEnumerable, поскольку именно этого ожидает DataGrid.Grid - это реализация, отличная от версии Telerik, поэтому трудно ожидать одинаковой функциональности от обеих.

Другие советы

Я нахожу, что самый простой способ - это:

myDataGrid.ItemsSource = myDataTable.DefaultView;

потому что DefaultView реализует IEnumerable

Я предполагаю, что поддержка для этого будет добавлена в будущем, но пока вы можете использовать реализацию IListSource на DataTable.Позвоните в GetList() метод и используйте его в качестве своего источника данных.Это явная реализация интерфейса, поэтому вам нужно будет привести:

var data = (myDataTable as IListSource).GetList();

В таких случаях я привязываю ItemsSource к DataContex в XAML, т. е.

ItemsSource={Binding} 

и затем в codebehind я делаю

theGrid.DataContext = dt

Это поможет.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top