C# 将空字典绑定到列表框

C# 将空字典绑定到列表框,c#,winforms,listbox,C#,Winforms,Listbox,当我试图将字典绑定到列表框时,会出现一个异常。无法绑定到新的值成员 我使用以下代码。 谁能告诉我出了什么事吗。因为当我在字典里输入我的行时,它工作得很好 this.contactpersonenListBox = new Dictionary<int, string>(); lsContactpersonen.DataSource = new BindingSource(this.contactpersonenListBox, null); lsContactpersonen.Di

当我试图将字典绑定到列表框时,会出现一个异常。无法绑定到新的值成员

我使用以下代码。 谁能告诉我出了什么事吗。因为当我在字典里输入我的行时,它工作得很好

this.contactpersonenListBox = new Dictionary<int, string>();

lsContactpersonen.DataSource = new BindingSource(this.contactpersonenListBox, null);
lsContactpersonen.DisplayMember = "Value";
lsContactpersonen.ValueMember = "Key";
this.contactPersoneListBox=新字典();
lsContactpersonen.DataSource=新的BindingSource(this.ContactPersoneListBox,null);
lsContactpersonen.DisplayMember=“值”;
lsContactpersonen.ValueMember=“Key”;

绑定空字典没有任何意义,因为dictionary对象不报告任何更改,因此在设置数据源后向字典添加项不会显示在列表框中

但要消除错误,请尝试如下设置:

BindingSource b = new BindingSource();
b.DataSource = this.contactpersonenListBox;
lsContactpersonen.DisplayMember = "Value";
lsContactpersonen.ValueMember = "Key";
lsContactpersonen.DataSource = b;

为什么要将空字典绑定到列表框?在我的示例中,字典是根据查询结果动态填充的。有时一个查询可能什么也找不到。将数据源保留为空字典。生成的列表框将显示一个名为“(Collection)”的条目。这很好,但是现在我的列表框设置了一个带有文本(Collection)的项,有没有办法摆脱它that@WillemT我没有看到你所看到的。我的列表框是空的。当我绑定字典时,我的列表框中有一个名为(集合)的项。一旦我在字典中填充了该项dissappears@WillemT我不能用我的密码重新编程。如果你使用的代码不同,也许可以用它更新你的帖子。我使用你上面发布的代码。我使用一个普通的列表框。我创建了一个函数,在表单加载时执行代码