Измените эту строку:
List<Binder> a = new List<Binder> { new Binder { Name = "A" } };
на эту:
BindingList<Binder> a = new BindingList<Binder> { new Binder { Name = "A" } };
Это будет просто работать без каких-либо других изменений.
Ключ к этому BindingList<T>
реализует IBindingList
, который уведомит элемент управления при изменении списка.Это позволяет элементу управления CheckedListBox обновлять свое состояние.Это двусторонняя привязка данных.
Кроме того, вы можете изменить эти две строки:
checkedListBox1.Invalidate();
checkedListBox1.Update();
на эту (более читаемая и, по сути, делает то же самое):
checkedListBox1.Refresh();