字典作为组合框的数据源

本文关键字:数据源 组合 字典 | 更新日期: 2023-09-27 18:34:55

类似于上一个问题,但对于 .NET 4.5,当我尝试时,接受的答案不起作用。

我正在尝试从字典中填充组合框。没有编译器错误,但我得到一个 ArgumentException:"复杂数据绑定接受 IList 或 IListSource 作为数据源"。这让我觉得我绑定的方式,ComboBox 只会让我填写一个或另一个,因为列表只是一个维度。

简化代码:

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

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

我不确定它有什么不同,但我正在使用WinForms。

字典作为组合框的数据源

我认为您可能没有遵循参考主题中的示例?

organization.ListComboBox.DataSource = orgs; 

应该是:

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

我在 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 删除键,然后将列表放入组合框中。 由于您没有使用组合框的键。