Вы не можете выполнить такое расширенное связывание данных с помощью WinForms CheckedListBox.
Вы можете установить DataSource, а затем свойства DisplayMember и ValueMember, но с этого момента вам придется делать все остальное с кодом (включая настройкусвойства Enabled и Checked)
Установите базовую привязку, как показано ниже:
checkedListBox.DataSource = aList;
checkedListBox.DisplayMember = "Name";
checkedListBox.ValueMember = "Name";
Оттуда вам нужно будет перебрать источник данных, задав необходимые свойства отдельных элементов.
Одна вещь, которую вы могли бы сделать (я не пробовал это, но она должна работать), это подкласс CheckedListBox и некоторый пользовательский код привязки в новом классе.
Это может дать вамболее элегантное решение - удаление кода из кода позади, хотя в зависимости от вашей ситуации это может не стоить усилий.