Получить индекс по значению в поле со списком для выигрышных приложений c # - PullRequest
0 голосов
/ 31 января 2012

мы можем легко получить индекс комбинированного списка, используя FindString метод

int index = cboCountryTwoCode.FindString(localJob.DeliveryCountryTwoCode.Trim());
cboCountryTwoCode.SelectedIndex = index;

так что мне просто нужно знать, есть ли способ получить индекс выпадающего списка, просто находя по значению, а не по тексту. пожалуйста, дайте мне знать, есть ли подобное. если что-то не так, то как достичь моей цели, чтобы получить индекс комбобокса просто найти по значению. спасибо

так я заполняю свой комбо

        cboCountryTwoCode.DataSource = Utility.LoadCountry();
        cboCountryTwoCode.DisplayMember = "CData";
        cboCountryTwoCode.ValueMember = "CValue";

LoadCountry () вернет данные. спасибо

1 Ответ

1 голос
/ 31 января 2012

В WinForms ComboBox не имеет явного списка ключей / значений элементов. Он имеет ObjectCollection для Items.

Я думаю, вы могли бы реализовать ToString() на своих объектах, чтобы отобразить их правильные описания.

Тогда вы должны использовать LINQ, чтобы найти правильный предмет. Примерно так:

class MyType
{
    public int Id { get; set; }
    public string Description { get; set; }
    public override string ToString()
    {
        return Description;
    }
}

var selectedObject = cb.Items.Cast<MyType>().SingleOrDefault(i => i.Id.Equals(myId));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...