字典作为ComboBox的数据源

时间:2014-12-19 21:08:23

标签: c# winforms dictionary combobox

previous question类似,但对于.NET 4.5,我尝试时接受的答案不起作用。

我正在尝试从Dictionary中填充ComboBox。没有编译器错误,但我得到一个ArgumentException:“复杂数据绑定接受IList或IListSource作为数据源”。这让我觉得我绑定的方式,ComboBox只会让我填写其中一个,因为List只是一维。

简化代码:

Dictionary<string,string> orgs = await api.CreateOrgMap();
organizationListComboBox.DataSource = orgs; 

我可以使用带有键和值字段的对象列表,但是当词典应该工作并且最终得到奖励对象时,这似乎很愚蠢。我做错了什么/这是不可能的?

我不确定它会有所作为,但我正在使用WinForms。

2 个答案:

答案 0 :(得分:2)

我认为你可能不会在引用主题中关注这个例子吗?

organization.ListComboBox.DataSource = orgs; 

应该是:

organization.ListComboBox.DataSource = new BindingSource(orgs, null);

答案 1 :(得分:0)

我一直在VB.NET中使用List。字典应该以相同的方式工作。

cmbox.DataSource = GetStores(); //this function is returning a list
cmbox.DisplayMember = "Joined"; //this is a property for an item in the list
cmbox.ValueMember = "ID"; //this is another property for an item in the list

加入=密钥 ID =值   - 或反之亦然 希望C#翻译是正确的,并希望它有所帮助。

通过字典循环创建列表可能更容易IE删除键然后将列表放入组合框。因为你没有使用组合框的键。