Почему я не могу привязать источник данных WPFToolkit DataGrid к DataTable? - PullRequest
7 голосов
/ 02 февраля 2009

В элементе управления 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?

Ответы [ 4 ]

32 голосов
/ 03 февраля 2009

Я считаю, что самый простой способ:

myDataGrid.ItemsSource = myDataTable.DefaultView;

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

4 голосов
/ 02 февраля 2009

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

var data = (myDataTable as IListSource).GetList();
3 голосов
/ 02 февраля 2009

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

0 голосов
/ 23 декабря 2010

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

ItemsSource={Binding} 

и затем в коде позади я делаю

theGrid.DataContext = dt

Это поможет.

...