} // IsSelected // ---------------------------------------------------------------------- protected override void RemoveItem(int index) { CheckableItem <T> item = this[index]; if (item != null) { item.IsSelectedChanged -= IsItemSelectedChanged; } base.RemoveItem(index); } // IsSelected
} // OnIsSelectedChanged // ---------------------------------------------------------------------- private static void IsSelectedPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { CheckableItem <T> checkableItem = d as CheckableItem <T>; if (checkableItem == null) { return; } checkableItem.OnIsSelectedChanged(); } // IsSelectedPropertyChanged
} // IsSelected // ---------------------------------------------------------------------- protected override void InsertItem(int index, CheckableItem <T> item) { base.InsertItem(index, item); item.IsSelectedChanged += IsItemSelectedChanged; } // IsSelected