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();
        }