【发布时间】:2014-02-19 13:01:42
【问题描述】:
我的问题是关于 WinForms 中的组合框。所以假设我们有一个包含很多字段的通用列表和 SingleItem 类。例如
class SingleItem{
public int val1;
public int val2;
public string str;
public override string ToString(){
return str;
}
};
List<SingleItem> listOfItems;
假设我们有 comboBox 变量。我正在以这种方式将项目添加到组合框
foreach(SingleItem item in listOfItems){
comboBox.Items.Add(item);
}
然后,当用户完成选择一个项目时,我们需要从所选项目中获取另一个字段。例如,我需要这样的东西
comboBox.SelectedItem.val1; // where val1 is field of SingleItem class
这就是问题所在。我试图用谷歌搜索这个问题,但没有为我的问题找到有价值的答案。我也尝试进行类型转换,但失败了。我当前的解决方案是在列表中搜索选定的值,但是这个解决方案具有 O(n) 复杂性并且不够好。谢谢
【问题讨论】:
-
不,当然,这只是示例,以表明我重写了 ToString 函数以便能够将项目添加到组合框。
-
你做了什么类型转换?因为它应该有效。
标签: c# winforms combobox type-conversion