private void AddItem(CheckedListItem <T> item)
 {
     item.PropertyChanged += HandleItemSelected;
     UpdateCheckedItems();
 }
 protected override void SetItem(int index, CheckedListItem <T> item)
 {
     RemoveItem(Items[index]);
     base.SetItem(index, item);
     AddItem(item);
 }
 private void RemoveItem(CheckedListItem <T> item)
 {
     item.PropertyChanged -= HandleItemSelected;
     CheckedItems.Remove(item.Item);
 }
 protected override void InsertItem(int index, CheckedListItem <T> item)
 {
     base.InsertItem(index, item);
     AddItem(item);
 }