【问题标题】:C# - How do I set the selected item in a combobox by comparing my int value?C# - 如何通过比较我的 int 值在组合框中设置所选项目?
【发布时间】:2018-06-28 13:59:15
【问题描述】:
我正在使用具有文本和值的项目的组合框。现在,我想通过将其值与提供的值进行比较来简单地选择一个项目。我正在遍历这些项目并进行如下比较。下面的代码可以正常工作,但是有没有更好或更简单的方法来做到这一点?我发现了一个可能重复的here,但它适用于字符串值而不是整数。
foreach (ComboboxItem item in this.CampaignList.Items)
{
if (Convert.ToInt16(item.Value) == objAACampaign.CompanyId)
{
this.CampaignList.SelectedIndex = this.CampaignList.Items.IndexOf(item);
break;
}
}
【问题讨论】:
标签:
c#
.net
winforms
combobox
【解决方案1】:
使用显示和值成员
像这样创建自定义类:
class MyCustomClass
{
//important to have get set part
public _int { get; set; }
public _string { get; set; }
}
现在加载您要在List<MyCustomClass>() 中显示的数据,然后将该列表绑定到组合框并设置它的显示和值成员,如下所示:
myComboBox.DisplayMember = "_string";
myComboBox.ValueMember = "_int";
myComboBox.DataSource = myList; //this is List<MyCustomClass>
现在只需使用myComboBox.SelectedValue = valueYouWant
重要!!!
由于性能原因,在将数据源绑定到组合框之前声明 displayMember 和 valueMember。在互联网上搜索更多信息。