2012-06-04 69 views
2

当我尝试将字典绑定到列表框时,我得到一个ArgumentException。无法绑定到新的值成员。将空字典绑定到列表框

我使用下面的代码。 任何人都可以告诉我什么是错的。因为当我进入我的字典排它的做工精细...

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

lsContactpersonen.DataSource = new BindingSource(this.contactpersonenListBox, null); 
lsContactpersonen.DisplayMember = "Value"; 
lsContactpersonen.ValueMember = "Key"; 
+1

你为什么要绑定一个空的字典到列表框? – Thousand

+0

在我的情况下,字典是基于查询结果动态填充的。有时查询可能没有任何结果。将数据源保留为空字典。结果列表框将显示一个名为“(Collection)”的条目。“ –

回答

3

它不会使一吨的感觉绑定一个空的字典,因为字典对象不报告任何改变,因此增加了项目在设置数据源后不会显示在ListBox中。

但摆脱错误的,可以尝试设置这样的:

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

这是伟大的,但现在我的列表框设置与文本项目(集合)有没有办法摆脱 –

+0

@WillemT我没有看到你所看到的。我的列表框是空的。 – LarsTech

+1

当我绑定字典时,其空我有一个项目名称(集合)在我的列表框。只要我填写字典的项目消失 –