ComboBox KeyValuePair没有正确获取值

本文关键字:获取 KeyValuePair ComboBox | 更新日期: 2023-09-27 17:51:16

  /**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;

我认为我正确地添加了ValueMember作为KeyValuePair的"值"。我做错了什么?

ComboBox KeyValuePair没有正确获取值

不需要在enumCmb中添加项,您可以这样绑定

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

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