Mubsher Mughal
Mubsher Mughal

Reputation: 442

C# - How do I set the selected item in a combobox by comparing my int value?

I'm using a ComboBox with items having text and value. Now, I want to simply make an item selected by comparing its value with the provided value. I'm iterating through the items and comparing as follow. Below code works fine, but is there a better or more simpler way to do this? I found a possible duplicate here but it works with the string value not integer.

foreach (ComboboxItem item in this.CampaignList.Items)
{
    if (Convert.ToInt16(item.Value) == objAACampaign.CompanyId)
    {
        this.CampaignList.SelectedIndex = this.CampaignList.Items.IndexOf(item);
        break;
    }
}

Upvotes: 0

Views: 186

Answers (1)

Aleksa Ristic
Aleksa Ristic

Reputation: 2499

Use display and value memeber

Create custom class like this:

class MyCustomClass
{
    //important to have get set part
    public _int { get; set; }
    public _string { get; set; }
}

now load data you want to display inside List<MyCustomClass>() and then bind that list to combobox and set it's display and value member like this:

myComboBox.DisplayMember = "_string";
myComboBox.ValueMember = "_int";
myComboBox.DataSource = myList; //this is List<MyCustomClass>

Now simply use myComboBox.SelectedValue = valueYouWant

IMPORTANT!!!

Declare displayMember and valueMember before binding datasource to combobox because of perfomance. Search internet for more info.

Upvotes: 4

Related Questions