Невозможно установить SelectedItem на Winforms Combobox с помощью данныхC#

Место общения программистов C#
Anonymous
 Невозможно установить SelectedItem на Winforms Combobox с помощью данных

Сообщение Anonymous »

У меня есть следующий код, чтобы генерировать Combobox < /p>

Код: Выделить всё

BindingList types = new([typeof(Foo), typeof(Bar)]);
Type? selectedType = types.SingleOrDefault(t => t.Name == "Bar");
ComboBox comboBox1 = new()
{
DataSource = types,
DisplayMember = nameof(Type.Name),
DropDownStyle = ComboBoxStyle.DropDownList,
SelectedItem = selectedType
};
Однако, когда я отображаю Combobox, несмотря на SelectedType , которое я ожидаю, я ожидаю, у Combobox выбран первый элемент. Кроме того, я заметил, что если я попытаюсь использовать Combob ox1.selectedIndex , все значения бросают indexoutofrangeException .
Если я удалю dataSource назначение и вместо этого заполняйте свойство «Код»>, оно работает нормально:

Код: Выделить всё

BindingList strings = new(new string[] { "Foo", "Bar"}.ToList());

ComboBox comboBox1 = new()
{
DropDownStyle = ComboBoxStyle.DropDownList,
};
comboBox1.Items.AddRange(strings.ToArray());
comboBox1.SelectedItem = "Bar";
< /code>
это ограничение Winforms, или я делаю что -то не так? но у меня нет ответа, который работает для меня, так как я не могу установить DisplayName 
и DisplayValue на все.

Подробнее здесь: https://stackoverflow.com/questions/794 ... datasource

Вернуться в «C#»