public bool SelectAllFromKey()
{
var items = MultiSelectTreeView.RecursiveTreeViewItemEnumerable(treeView, false, false).ToList();
// Add new selected items
foreach (var item in items.Where(i => !treeView.SelectedItems.Contains(i.DataContext)))
{
var e = new PreviewSelectionChangedEventArgs(true, item.DataContext);
OnPreviewSelectionChanged(e);
if (e.CancelAll)
{
return false;
}
if (!e.CancelThis)
{
treeView.SelectedItems.Add(item.DataContext);
}
}
return true;
}