Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 有没有办法将DataGridView绑定到字典并将键用作列?_C#_Dictionary_Data Binding_Datagridview_Bindingsource - Fatal编程技术网

C# 有没有办法将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

有没有办法将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>{ 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...