【发布时间】:2014-03-21 23:05:32
【问题描述】:
/**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 的“值”。我做错了什么?
【问题讨论】:
-
DisplayMember 和 ValueMember 仅在您设置 ComboBox 的 DataSource 时起作用。 SelectedItem 应该可以工作,您只需将其转换为
KeyValuePair<string, string>
标签: c# combobox key-value keyvaluepair