2011-03-05 65 views
1

我有一个List<object[]> MyCollection这是SELECT SQL查询的结果。
每个object[]表示查询结果中的一行,并且数组的长度对于不同的查询会有所不同。
我有一个单独的List<string> MyHeaders列标题的名称。
将DataGrid数据绑定到列表<object[]>

我想将MyCollection的数据绑定为DataGrid,并使用MyHeaders的列标题自动生成列。

我想使用AutoGenerateColumns的原因是因为我希望Datagrid重新构建每个对象的DataTypes,并为每个DataType使用适当的列模板。

谢谢!

+1

我觉得DataGrid能做出比动态更好的标签。我也很好奇这个解决方案:) – MPelletier 2011-03-05 06:12:36

回答

1

如果您遇到困难并且需要继续:使用数据集/数据表。古代,但他们仍然工作得很好!如果你想知道它是否可以完成,我不知道。绑定到IList的大多数示例我已经手动看到循环并创建列。

问候GJ

+0

我觉得使用Datatable有点勉强,但决定使用它。它似乎是最简单的解决方案。 – Yeonho 2011-03-05 07:01:21

+0

大声笑是的我知道,他们不觉得MVVMy/Linqy,但我认为他们最近没有得到足够的爱;-) – gjvdkamp 2011-03-05 07:07:22

0

不要使用列表头,使用字典和使用属性名称作为关键字,把描述的值。做一个正常的blah.DataSource = List和DataBind()。在你的ItemDataBound事件通过这样的搜索字典替换为您介绍的标题:

foreach col in grid.Columns { col.Name = dic[col.Name].Value; }