private void PreselectItem([NotNull] object sender, [NotNull] MouseButtonEventArgs e)
        {
            Debug.ArgumentNotNull(sender, nameof(sender));
            Debug.ArgumentNotNull(e, nameof(e));

            var treeViewItem = TreeViewItemExtensions.VisualUpwardSearch <TreeViewItem>(e.OriginalSource as DependencyObject) as TreeViewItem;

            if (treeViewItem != null)
            {
                treeViewItem.IsSelected = true;
            }
        }
示例#2
0
 static void OnGotFocus(object sender, RoutedEventArgs e)
 {
     SelectedItemOnMouseUp = null;
     if (!e.OriginalSource.Is <TreeView>())
     {
         var Item = (e.OriginalSource as DependencyObject).GetVisualParent <TreeViewItem>();
         if (Item != null && Item.Is <TreeViewItem>())
         {
             if (Mouse.LeftButton == MouseButtonState.Pressed && TreeViewItemExtensions.GetIsSelected(Item) && Keyboard.Modifiers != ModifierKeys.Control)
             {
                 SelectedItemOnMouseUp = Item;
             }
             else if (sender is TreeViewExt && TreeViewExtensions.GetSelectionMode(sender as TreeView) == TreeViewSelectionMode.Single)
             {
                 TreeViewExtensions.SelectItem(sender as TreeView, Item);
             }
             else
             {
                 (sender as TreeViewExt).SelectItems(Item);
             }
         }
     }
 }