2011-03-05 66 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; }