Как работает свойство SelectedValue класса ComboBox (C#) - CodeHelper

Как работает свойство SelectedValue класса ComboBox (C#)

1

Я добавляю элементы в выпадающий список:

comboBox.Items.Add(new Item { Name = "name1", Value = 1 });
comboBox.Items.Add(new Item { Name = "name2", Value = 2 });
comboBox.Items.Add(new Item { Name = "name3", Value = 3 });

устанавливаю имена свойств для отображения и значения:

comboBox.DisplayMember = "Name";
comboBox.ValueMember = "Value";

Отображение работает как ожидалось — показывается значение свойства Name для каждого элемента. Но свойства самого ComboBox, ответственные за выделение — SelectedValue и SelectedText всегда возвращают null и пустой текст соответственно (причем элемент точно выбран, и SelectedItem ссылается на него). Почему так происходит?

Лучший ответ:

1

Для корректной работы свойств SelectedValue и SelectedText нужно задать DataSource для выпадающего списка. При этом, конечно, не нужно добавлять элементы через Items.Add():

comboBox.DataSource = new List<Item>
{
    new Item { Name = "name1", Value = 1 },
    new Item { Name = "name2", Value = 2 },
    new Item { Name = "name3", Value = 3 },
    // ...
}
v1.7.123.556
© 2009—2010 CodeHelper FAQ | О сайте | Обратная связь | История изменений | Статьи
Creative Commons LicenseМатериалы сайта распространяются под лицензией Creative Commons Attribution-Share Alike 3.0 Unported.