datamember属性'System'在DataSource上找不到

时间:2013-06-18 13:44:24

标签: c# winforms

我将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;

1 个答案:

答案 0 :(得分:1)

如果您希望显示成员是字典中每对的,并且值成员是每对的,您可能需要:

lComboBox.DisplayMember = "Key";
lComboBox.ValueMember = "Value";

你应该知道订单将不确定 - 这真的是你想要的吗?

ToString()Dictionary<,>.Keys的返回值上调用Dictionary<,>.Values可能只会为您提供类型的完全限定名称,该名称将以System.Collections...开头 - 这就是你得到当前错误的原因。

我还强烈建议您将属性重命名为遵循.NET命名约定的内容,并且意味着