我将Dictionary
绑定到ComboBox
。这似乎没有任何编译错误,但在运行时我收到错误:
datamember property' System'无法在DataSource上找到
这是我的代码:
public Dictionary<string, object> valuList
{
set
{
lComboBox.DataSource = new BindingSource(value,null);
lComboBox.DisplayMember = (value.Keys).ToString();
lComboBox.ValueMember = (value.Values).ToString();
}
}
Dictionary<string, string> x6 = new Dictionary<string, string>();
x6.Add("AS", "ASS");
x6.Add("AAS", "AASS");
myForm.valuList = x6;
答案 0 :(得分:1)
如果您希望显示成员是字典中每对的键,并且值成员是每对的值,您可能需要:
lComboBox.DisplayMember = "Key";
lComboBox.ValueMember = "Value";
你应该知道订单将不确定 - 这真的是你想要的吗?
在ToString()
或Dictionary<,>.Keys
的返回值上调用Dictionary<,>.Values
可能只会为您提供类型的完全限定名称,该名称将以System.Collections...
开头 - 这就是你得到当前错误的原因。
我还强烈建议您将属性重命名为遵循.NET命名约定的内容,并且意味着。