protected static void OnIsSelectedChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
// The item has been selected through its IsSelected property. Update the SelectedItems
// list accordingly (this is the authoritative collection). No PreviewSelectionChanged
// event is fired - the item is already selected.
MultiSelectTreeViewItem item = d as MultiSelectTreeViewItem;
if (item != null)
{
if ((bool) e.NewValue)
{
if (!item.ParentTreeView.SelectedItems.Contains(item.DataContext))
{
item.ParentTreeView.SelectedItems.Add(item.DataContext);
}
}
else
{
item.ParentTreeView.SelectedItems.Remove(item.DataContext);
}
}
}