2014-12-19 62 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 

我相信有更好的解决方案,所以仍然会欢迎其他答案。