在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
?
答案 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
这会有所帮助。