为什么我不能将WPFToolkit DataGrid ItemSsource绑定到DataTable?

时间:2009-02-02 09:28:43

标签: wpf data-binding datagrid telerik wpftoolkit

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 个答案:

答案 0 :(得分:32)

我发现最简单的方法是:

myDataGrid.ItemsSource = myDataTable.DefaultView;

因为DefaultView实现了IEnumerable

答案 1 :(得分:4)

我假设将来会添加对此的支持,但是现在您可以在IListSource上使用DataTable的实现。调用GetList()方法并将其用作数据源。这是一个显式的接口实现,因此您需要强制转换:

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

答案 2 :(得分:3)

你必须将你的数据表投射到实现IEnumerable的东西,就像DataGrid所期望的那样。网格是与Telerik版本不同的实现,因此很难期望两者都具有相同的功能。

答案 3 :(得分:0)

在这种情况下,我将ItemsSource绑定到XAML中的DataContex,即

ItemsSource={Binding} 

然后在代码隐藏中我做

theGrid.DataContext = dt

这会有所帮助。