与previous question类似,但对于.NET 4.5,我尝试时接受的答案不起作用。
我正在尝试从Dictionary中填充ComboBox。没有编译器错误,但我得到一个ArgumentException:“复杂数据绑定接受IList或IListSource作为数据源”。这让我觉得我绑定的方式,ComboBox只会让我填写其中一个,因为List只是一维。
简化代码:
Dictionary<string,string> orgs = await api.CreateOrgMap();
organizationListComboBox.DataSource = orgs;
我可以使用带有键和值字段的对象列表,但是当词典应该工作并且最终得到奖励对象时,这似乎很愚蠢。我做错了什么/这是不可能的?
我不确定它会有所作为,但我正在使用WinForms。
答案 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删除键然后将列表放入组合框。因为你没有使用组合框的键。