C# 有没有办法将DataGridView绑定到字典并将键用作列?
有没有办法将DataGridView绑定到字典并将键用作列 例如,我有一些类似于:C# 有没有办法将DataGridView绑定到字典并将键用作列?,c#,dictionary,data-binding,datagridview,bindingsource,C#,Dictionary,Data Binding,Datagridview,Bindingsource,有没有办法将DataGridView绑定到字典并将键用作列 例如,我有一些类似于: var items = new Dictionary<string, List<int>>(); items.Add("Column 1", new List<int>{ 1, 2, 3 }); items.Add("Column 2", new List<int>{ 1, 2, 3 }); items.Add("Column 3", new List<int
var items = new Dictionary<string, List<int>>();
items.Add("Column 1", new List<int>{ 1, 2, 3 });
items.Add("Column 2", new List<int>{ 1, 2, 3 });
items.Add("Column 3", new List<int>{ 1, 2, 3 });
[ Column 1] [ Column 2] [ Column 3]
1 1 1
2 2 2
3 3 3
我尝试将简单字典转换为动态对象:
dynamic itemsData = new ExpandoObject();
IDictionary<string, object> items = (IDictionary<string, object>)itemsData;
items.Add("Column 1", new List<int>{ 1, 2, 3, 4, 5 });
items.Add("Column 2", new List<int>{ 1, 2, 3, 4, 5 });
items.Add("Column 3", new List<int>{ 1, 2, 3, 4, 5 });
bindingSource1.DataSource = itemsData;
dataGridView1.DataSource = bindingSource1;
谢谢。我不认为,您可以将字典绑定到DataGridView。为了将对象绑定到DataGridView的数据源,该对象应该实现IList,ListSource,但Dictionary不实现 解决方法之一是将字典转换为数据表并将其绑定到DataGridView 表列名称为Column1,Column2---ColumnN,并创建相应的行数
注意:转换开销可能会影响性能。我不认为,您可以将dictionary绑定到DataGridView。为了将对象绑定到DataGridView的数据源,该对象应该实现IList,ListSource,但Dictionary不实现 解决方法之一是将字典转换为数据表并将其绑定到DataGridView 表列名称为Column1,Column2---ColumnN,并创建相应的行数
注意:转换开销可能会影响性能。您正在尝试向水平思考的对象添加垂直数据。一般的模式是将数据以行而不是列的形式添加到数据网格中。您试图将垂直数据添加到水平思考的对象中。一般的模式是将行中的数据添加到datagrid,而不是列中。
[ Key] [ Value ]
Column 1 System.Collect...
Column 2 System.Collect...
Column 3 System.Collect...