DataTable 作为 DataGrid.ItemsSource
Posted
技术标签:
【中文标题】DataTable 作为 DataGrid.ItemsSource【英文标题】:DataTable as DataGrid.ItemsSource 【发布时间】:2013-02-03 05:25:43 【问题描述】:嗨,我想在代码隐藏中将具有多列的 DataTable
绑定到 DataGrid
var dt = new DataTable();
dt.Columns.Add(new DataColumn("1"));
dt.Columns.Add(new DataColumn("2"));
dt.Columns.Add(new DataColumn("3"));
dt.Rows.Add(ff.Mo);
dt.Rows.Add(ff.Di);
dt.Rows.Add(ff.Mi);
dt.Rows.Add(ff.Do);
dt.Rows.Add(ff.Fr);
dt.Rows.Add(ff.Sa);
dt.Rows.Add(ff.So);
// ff is a object that contains List<myCellObj>
DataGrid DGrid = new DataGrid();
for (int i = 0; i < 3; i++)
DataGridTemplateColumn templateColumn = new DataGridTemplateColumn();
templateColumn.HeaderTemplate = HeaderDt;
templateColumn.CellTemplate = ItemDt; //specified DataTemplate for myCellObj
DGrid.Columns.Add(templateColumn);
现在我如何将我的dt
设置为ItemsSource
、Datacontext
或将它放入我的View
另外,如果你能给我提供一种直接绑定到我的Object ff
的方法
非常感谢任何可以提供帮助的东西
【问题讨论】:
***.com/questions/6984686/… @AbZy 是的,我试过了,是的,它没有用 @moncadad 正是我想要的样子 【参考方案1】:假设您在 WPF 中,只需说:
DGrid.ItemsSource = dt.AsDataView();
无需在 DataGrid 上手动设置列,分配 DataTable 将为您设置这些。
【讨论】:
它给了我一个错误:双向绑定需要 Path 或 XPath。 如果不逐列添加,则 DataGrid 的格式不适用,仅显示数据。请帮助动态格式化列,例如更改颜色。 我会建议再问一个新问题。本题与格式化datagrid无关,只设置数据源。以上是关于DataTable 作为 DataGrid.ItemsSource的主要内容,如果未能解决你的问题,请参考以下文章
如何在 BLToolkit 中将 DataTable 作为参数传递?
无法向作为两个嵌套关系中的子表的 DataTable 添加约束
如何通过不提交当前会话事务将 DataTable 作为参数传递给存储过程?