Как получить значение из выпадающего списка в C #? - PullRequest
1 голос
/ 11 апреля 2011

Я не могу получить значение из ComboBox в WinForms с использованием C #.

У меня есть ComboBox, заполненный списком значений, и я установил ValueMember и DisplayMember.

Теперь я должен найти значение выбранного элемента ComboBox и выбрать соответствующий элемент в пользовательском интерфейсе.

Вот что я имею в виду: -

Я загрузил ComboBox так: -

var list = (from l in db.Loc
            orderby l.LName ascending
            select l).ToList();
list.Insert(0, new Loc { ID = "-1", Name = "--Select--" });
cmb1.BindingContext = new BindingContext();
cmb1.DataSource = list;
cmb1.DisplayMember = "Name";
cmb1.ValueMember = "ID";

Теперь на событии я пытаюсь сопоставить значение (ID) и выбрать элемент. Легко, если я сопоставлю Text свойство:

cmb1.Text = data.Name;

Но как сопоставить значение?

Примерно так: -

cmb1.Value = data.ID;

Ответы [ 6 ]

3 голосов
/ 11 апреля 2011

Если вы знаете только ID предмета, вы также можете использовать:

cmb1.SelectedValue = data.ID;
2 голосов
/ 11 апреля 2011

Это должно работать:

cmb1.SelectedValue = data.ID;
1 голос
/ 11 апреля 2011

Прежде всего: cmb1.Text = text; изменяет текст ComboBox на указанное значение.Он не выделяет элемент с текстом, который соответствует указанному значению.

Используйте cmb1.SelectedValue = value;, чтобы выбрать элемент с указанным значением.

1 голос
/ 11 апреля 2011

Почему вы хотите присвоить вам "соответствующее" значение свойству ComboBox Value?Как только вы правильно установили DisplayMember и ValueMember, и ваш DataSource реализует оба эти свойства в качестве свойств, значения будут автоматически «сопоставлены», например, вы можете прочитать свойство Value в вашем обработчике событий, чтобы получить это «согласованное» значение.

1 голос
/ 11 апреля 2011

data должно быть в list, привязанном к combobox, затем:

cmb1.SelectedItem = data

или, если это не так (вы получили другой экземпляр откуда-то):

cmb1.SelectedValue = data.ID
0 голосов
/ 11 апреля 2011

Вы можете получить индекс используя свойство Combo1.SelectedIndex.Вы можете получить предмет, используя Combo1.SelectedItem или Combo1.Items[Combo1.SelectedIndex]

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