2014-12-19 63 views
0

我有一個List(Of MyClass)作爲DataGridView控件的DataSource,並且這很好地工作。自動爲MyClass中的每個公共屬性創建一列。將字典值綁定到DataGridView

我決定雖然我希望列表被索引到一個字符串,所以我將其更改爲Dictionary(Of String, MyClass),當然數據綁定不再起作用。我試過ToArray(),ToList(),Values()等等,但是這些都沒有返回合適結構中的數據,無法在DataGridView中正確顯示。

是否有一種簡單的方法來將字典中的ValueCollection轉換爲某種MyClass的可枚舉列表?或者任何人都可以爲此提出比Dictionary更好的數據結構?

謝謝。

+0

[DataGridView綁定到字典]的可能重複(http://stackoverflow.com/questions/854953/datagridview-bound-to-a-dictionary) – Junaith 2014-12-19 12:37:00

+0

@Junaith感謝您的鏈接。我看到了這個問題。但它並沒有完全回答我的問題。在那種情況下,他們只使用一個財產。主要答案相當複雜,代碼示例沒有很好解釋。我嘗試了其他一些建議,但一直沒有能夠擴展它們以使用多個屬性。 (不會幫助它是C#而不是VB,並且我對Linq的經驗有限)。 此外,它沒有解決我的問題的第二部分,即是否有更合適的數據結構可以用來代替字典? – 2014-12-19 17:37:11

回答

0

我目前已經實現了這一點,通過從字典中填充一個新的列表來實現數據綁定。這足以滿足我的迫切需求,但顯然效率低下。

 Dim ds As New List(Of MyClass) 
     For Each v As Object In MyDictionary 
      ds.Add(v.value) 
     Next 
     DataGridView1.DataSource = ds 

我相信有更好的解決方案,所以仍然會歡迎其他答案。