2013-07-08 72 views
0

嗨我有一个字典,我绑定到一个绑定源。我想在列表框中显示这些键。所以我将bindingsource添加到列表框并将displaymember设置为“Key”。这不起作用。它给我的字典,而不是关键字符串的toString ...使用c#字典绑定到列表框

代码:

 bs_directions.DataSource = bs_measurements; 
     bs_directions.DataMember = "zielwertdict"; //(=Dictionary<string,list<object>>) 

     listBox3.DataSource = bs_directions; 
     listBox3.DisplayMember = "Key"; 

UPDATE: 的bs_measurements是被绑定到另一个列表框另一个列表。当我构建项目时,listBox3显示字典的键。当我更改绑定到bs_measurement的列表框中的项目时,listbox3显示dictionary.Tostring()的东西...非常奇怪...

UPDATE 2: bs_measurment列表中包含的对象有一个字典zielwerdict)和散列表:

public class bs_measurementOBject 
{ 
public string name; 
public SortedDictionary<string,list>object>> zielwertlist; 
public Hashtable block; 
} 
+0

您可能需要的数据源设置为新的BindingSource,即; bs_directions.DataSource = new BindingSource(bs_measurements,null); –

+0

这不会改变任何东西 – benst

回答

0

在上面的例子bs_directions.DataMember必须是NULL

+0

关心给予更多的信息,为什么它必须为空... – benst

+0

看看http://msdn.microsoft.com/en-us/library/system.windows.forms。 bindingsource.datamember%28v = vs.90%29.aspx“如果DataSource包含多个数据列表(或表),则应将DataMember属性设置为其中一个源的名称。”但是你只能绑定一个,对吗? – Winks

+0

bs_measurment列表中包含的对象具有字典(zielwerdict)和散列表。 – benst