コード例 #1
0
        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);
        }
コード例 #2
0
 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);
             }
         }
     }
 }
コード例 #3
0
 public static object GetAltSelectedItem(ExplorerTreeView element)
 {
     if (element == null)
     {
         return(null);
     }
     return((object)element.GetValue(AltSelectedItemProperty));
 }
コード例 #4
0
        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);
            }
        }
コード例 #5
0
 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");
     }
 }