所以我的问题是我想在WPF中的另一个表中显示一个表。
我使用DataTable
来显示一些数据,并且有一列,我需要在其中显示另一个DataTable
。我设置了AutoGenerateColumns="True"
。对于一个小测试,这是我写的(好吧,它按预期工作(:
var curDataTable = new DataTable();
curDataTable.Columns.Add("name" , typeof(string));
curDataTable.Columns.Add("number", typeof(int));
DataRow curRowData = curDataTable.NewRow();
curRowData[0] = "jones";
curRowData[1] = 90;
curDataTable.Rows.Add(curRowData);
现在,假设我已经有了一个已填充的DataTable
_dataTable。现在我想在第二列中显示这个_dataTable。这是我所期望的工作,但不起作用:
var curDataTable = new DataTable();
curDataTable.Columns.Add("name" , typeof(string));
curDataTable.Columns.Add("table", typeof(DataTable));
DataRow curRowData = curDataTable.NewRow();
curRowData[0] = "jones";
curRowData[1] = _dataTable;
curDataTable.Rows.Add(curRowData);
有人知道怎么解决这个问题吗?
使用嵌套的DataTables
不起作用。
您应该做的是用自定义类型替换外部DataTable
,并绑定到DataGridTemplateColumn
中此类型的自定义集合属性。
我认为嵌套的DataTables是不可能的。。。您可以做的是在"_datable"中创建名称为"的新列;name";
_datatable.Columns.Add("name" , typeof(string)).SetOrdinal(0);
使用CCD_ 8;name";列第一列。现在你可以添加新的列了。
我希望它能帮助