internal void TeardownMultipleArrowNavigationSession() { // If the multiple navigator handler is null, it means the teardown request was captured by a key that was part of some other event. We simply ignore it in this case. if (MultipleNavigationHandler == null) { return; } MultipleNavigationHandler = null; if (!SelectionManager.HasSelection || SelectionManager.IsMultipleSelection) { TreeView.Focus(); } else { SelectionManager.SelectedItems.Single().Focus(); } }
// Shift + Arrow Navigation internal void HandleMultipleArrowNavigation() { if (!AllowArrowNavigation || !SelectionManager.SelectedItems.Any()) { return; } if (!AllowMultipleSelection) { HandleArrowNavigation(); return; } if (MultipleNavigationHandler == null) { MultipleNavigationHandler = new TreeViewArrowNavigationHandler(TreeView, SelectionManager.SelectedItems.Last(), TreeViewNavigationDirection.Down); } MultipleNavigationHandler.NavigateDown(); }