public static void SetIsAltSelected(ExplorerTreeViewItem element, Boolean value, ExplorerTreeView treeView) { if (element == null) { return; } if (value) { //deselect previous selection var selected = ExplorerTreeView.GetAltSelectedItem(treeView); ExplorerTreeView.AltDeselectItem(treeView, element, element); } if (GetIsAltSelected(element) != value) { element.SetValue(IsAltSelectedProperty, value); element.NotifyPropertyChanged("IsAltSelected"); } object selectedobj = ExplorerTreeView.GetAltSelectedItem(treeView); if (selectedobj != null && selectedobj.Equals(element.Header)) { return; } ExplorerTreeView.SetAltSelectedItem(treeView, value ? element.Header : null); }
public static void AltDeselectItem(ExplorerTreeView treeView, ExplorerTreeViewItem treeViewItem, ExplorerTreeViewItem skip) { if (treeView != null) { for (int i = 0; i < treeView.Items.Count; i++) { if (treeView.ItemContainerGenerator.ContainerFromIndex(i) is ExplorerTreeViewItem item) { if (item != skip) { ExplorerTreeViewItem.SetIsAltSelected(item, false, treeView); } AltDeselectItem(null, item, skip); } } } else { for (int i = 0; i < treeViewItem.Items.Count; i++) { if (treeViewItem.ItemContainerGenerator.ContainerFromIndex(i) is ExplorerTreeViewItem item) { if (item != skip) { ExplorerTreeViewItem.SetIsAltSelected(item, false, treeView); } AltDeselectItem(null, item, skip); } } } }
public static object GetAltSelectedItem(ExplorerTreeView element) { if (element == null) { return(null); } return((object)element.GetValue(AltSelectedItemProperty)); }
private static void OnIsAltSelectedChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { var treeViewItem = d as ExplorerTreeViewItem; var treeView = ExplorerTreeView.FindTreeView(treeViewItem); if (treeViewItem != null && treeView != null) { //SetIsAltSelected(treeViewItem, GetIsAltSelected(treeViewItem), treeView); } }
public static void SetAltSelectedItem(ExplorerTreeView element, object value) { if (element == null) { return; } if (value is FSExplorerItem ei) { value = ei.Info; } if (element.GetValue(AltSelectedItemProperty) != value) { element.SetValue(AltSelectedItemProperty, value); element.NotifyPropertyChanged("AltSelectedItem"); } }