2011-06-07 79 views
1

如何将字典对象绑定到Windows窗体中的datagridview?如何将字典对象绑定到Windows窗体gridview

Dictionary<string, string> result = new Dictionary<string, string>(); 
result.Add(arrFilename[i].fileName,"Found"); 
dataGridView1.DataSource = result; 

dataview网格不绑定。解决办法是什么?

回答

3

DataGridView.DataSource需要实现IList,IListSource,IBindingListIBindingListView的对象。

由于没有Dictionary,Dictionary.ValueCollectionDictionary.KeyCollection实施它,您不能直接绑定到它。

如果你只想值的只读列表,你可以将它们添加到List并绑定到,例如(假设你的词典使用int和字符串作为键和值类型):

List<KeyValuePair<int,string>> list = new List<KeyValuePair<int,string>>(); 
list.AddRange(myDict.Values); 

DataGridView1.DataSource = list; 

如果你想做更聪明的事情,那么最简单的解决方案是不要使用Dictionary作为你的数据结构。你可能会继承你的Dictionary并实现一个可绑定接口,但这可能比必要的更复杂和复杂。

请参阅DataGridView bound to a generic dictionary by Rory(MSDN forum)。

1

不能使用字典。而是使用DictionaryEntry的数组。 我认为,因为词典列表中的每个项目都没有已知的类型。

它没有显示错误,但是如果您将组合框设置为字典,它会显示 它不会执行IList

相关问题