Выберите значение в ComboBox, загруженном с объектами - PullRequest
1 голос
/ 13 октября 2009

Как я могу выбрать элемент в поле со списком с помощью клавиши "02"?

public class GenericComboBox
{
    private string _key = string.Empty;
    private string _value = string.Empty;

    public string Key
    {
        get { return _key; }
        set { _key = value; }
    }

    public string Value
    {
        get { return _value; }
        set { _value = value; }
    }

    public GenericComboBox(string key, string value)
    {
        _key = key;
        _value = value;
    }
}

//Add data
IList<GenericComboBox> data = new List<GenericComboBox>();

data.Add(new GenericComboBox("01", "01 text"));
data.Add(new GenericComboBox("02", "02 text"));
data.Add(new GenericComboBox("03", "03 text"));

comboBox1.DataSource = data;
comboBox1.ValueMember = "Value";

//comboBox1.SelectItem With key equal "02"

Спасибо.

Ответы [ 4 ]

1 голос
/ 13 октября 2009

Переопределить Equals в вашем классе GenericComboBox:

public override bool Equals(object obj)
{
   return string.Compare(Key, obj.ToString(), true) == 0;
}

Тогда этот код должен работать:

comboBox1.SelectedItem = "02";
1 голос
/ 13 октября 2009

.Net 2.0: (данные должны быть списком, а не списком IList для этого).

    this.comboBox1.SelectedItem = data.Find(delegate(GenericComboBox gc) {return gc.Key == "02"; });

.Net 3.5:

    this.comboBox1.SelectedItem = data.First(gc => gc.Key == "02");
1 голос
/ 13 октября 2009

Установите свойство SelectedValue. ComboBox выберет элемент с установленным значением.

0 голосов
/ 13 октября 2009

Как насчет использования словаря вместо IList? Затем вы можете получить значение с помощью ключа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...