1
  /**Dictionary looks like this
    *[PERCENTAGELOSS, 0]
    *[THRESHOLD, 1]
    *etc.
    */
  Dictionary<string, string> allEnums = XMLHandling.getEnums(enumCognityName);

  foreach (KeyValuePair<string,string> item in allEnums)
        {
             enumCmb.Items.Add(item);
        }
             enumCmb.DisplayMember = "Key";
             enumCmb.ValueMember = "Value";
             enumCmb.SelectedIndex = 0;
        }

将 添加KeyValuePairs到 后ComboBox,它会正确显示项目的名称,但我无法正确获取它们的值。这是尝试获取值的代码:

case "enum":
           ComboBox enumBox = c as ComboBox;
           var test0 = enumBox.SelectedItem; // [PERCENTAGELOSS, 0]
           var test1 = enumBox.SelectedText; // ""
           var test2 = enumBox.SelectedValue; // null
           break;

我以为我正确地ValueMemberKeyValuePair. 我究竟做错了什么?

4

1 回答 1

2

您可以像这样绑定,而不是在 enumCmb 中添加项目

enumCmb.DisplayMember = "Key";
enumCmb.ValueMember = "Value";
enumCmb.DataSource = new BindingSource { DataSource = allEnums };

我不确定,但您可能需要将数据转换为列表。

于 2014-03-21T15:05:32.700 回答