Ответ 1
После добавления ddl.BindingContext = new BindingContext();
перед назначением BindingSource
все работало нормально.
После привязки списка к combobox, его dataSource.Count равен 5, но счетчик элементов списка - 0. как это может быть?
Я привык к веб-программированию, и это в Windows Forms.
Поэтому не существует метода combo.DataBind();
.
Проблема в том, что я пытаюсь установить выбранный элемент программно. Поскольку я не вижу combo.Items коллекции заполнены, я не могу установить нужный элемент.
Обновление
Требуется общее обновление. Думаю:
DisplayMember
и ValueMember
соответствующим образом реализованыcombobox.DataSource.Count = 7
и combobox.Items.Count = 0
Итак, проблема здесь; так как после привязки данных нет элементов в ItemCollection of combobox; Я не могу найти подходящий и установить соответствующий.
Вот изображение для лучшего понимания (Но я уверен, что мне не хватает простого)
После добавления ddl.BindingContext = new BindingContext();
перед назначением BindingSource
все работало нормально.
Если вы расширите элементы DataSource в debuger, вы, вероятно, заметите, что 1-й список элементов имеет значение null. Вот почему DataSource не отображает элементы ComboBox. Удаление нулевых элементов из списка должно выполнять всю работу;
У меня была та же проблема, но в моем случае это было вызвано вызовом
combobox.Sorted = True
в InitializeComponent
. Я предполагаю, что этот вызов инициализирует Items
, что затем предотвращает обновление данных DataSource
(Items
).