Root проблема здесь состоит в том, что ComboBox не получает каких-либо уведомлений, когда его DataSource изменения, так что, очевидно, он не обновит визуально, как это нужно, потому что это Безразлично Я не понимаю, что произошло.
Решение, отличное от идеала, является тем, что Sajeetharan предложил удалить список althogether и добавить его снова. Это заставляет элемент управления перечитать весь список еще раз, и поэтому он «ловит» изменение, удаляя отсутствующий элемент.
Лучшим решением является использование соответствующего типа коллекции, который предоставляет уведомления об изменении элемента управления и позволяет его перерисовывать по мере необходимости. Это цель BindingList<T>
class. Часто рекомендуется использовать это при настройке источников данных для привязок вместо простых списков.
Короче говоря, ваш код станет:
BindingList<Flag> flags = new BindingList<Flag>();
comboBox.DataSource = flags;
После этого, вы просто удалить элемент из него:
flags.Remove(currentFlag);
и связывание данных двигателя заботится о удалении элемента из комбо.
Это похоже на отличное решение. Я собираюсь попробовать этот подход. Спасибо! – dag623
Работал как шарм! Еще раз спасибо! – dag623