2011-06-07 80 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

相關問題