Example #1
0
        private bool ExpandAndSelectItem(ItemsControl parentContainer, object itemToSelect)
        {
            foreach (Object item in parentContainer.Items)
            {
                count++;
                TreeListViewItem currentContainer = parentContainer.ItemContainerGenerator.ContainerFromItem(item) as TreeListViewItem;
                if (item == itemToSelect && currentContainer != null)
                {
                    currentContainer.IsSelected = true;
                    currentContainer.BringIntoView();
                    currentContainer.Focus();
                    ScrollViewer viewer = VisualUpwardSearch <ScrollViewer>(currentContainer as DependencyObject) as ScrollViewer;
                    viewer.ScrollToVerticalOffset(count * 25);
                    return(true);
                }

                if (currentContainer != null && currentContainer.Items.Count > 0)
                {
                    bool wasExpanded = currentContainer.IsExpanded;
                    currentContainer.IsExpanded = true;
                    currentContainer.UpdateLayout();
                    if (ExpandAndSelectItem(currentContainer, itemToSelect))
                    {
                        return(true);
                    }
                    else
                    {
                        currentContainer.IsExpanded = wasExpanded;
                        currentContainer.UpdateLayout();
                    }
                }
            }
            return(false);
        }
Example #2
0
        protected override void OnPreviewMouseRightButtonDown(MouseButtonEventArgs e)
        {
            TreeListViewItem tvitem = VisualUpwardSearch <TreeListViewItem>(e.OriginalSource as DependencyObject) as TreeListViewItem;

            if (tvitem != null)
            {
                tvitem.Focus();
            }

            base.OnPreviewMouseRightButtonDown(e);
        }
Example #3
0
        public void SetScorllViewPosition(object item, object oneLevelTree = null)
        {
            if (item == null)
            {
                return;
            }
            TreeListViewItem container = null;

            if (oneLevelTree == null)
            {
                foreach (var tree in this.Items)
                {
                    TreeListViewItem tlvi = this.ItemContainerGenerator.ContainerFromItem(tree) as TreeListViewItem;
                    container = FindTreeViewItem(tlvi, item) as TreeListViewItem;
                    if (container != null)
                    {
                        break;
                    }
                }
                if (container == null)
                {
                    return;
                }
                container.BringIntoView();
                container.IsSelected = true;
            }
            else
            {
                TreeListViewItem tlvi = this.ItemContainerGenerator.ContainerFromItem(oneLevelTree) as TreeListViewItem;
                if (item == oneLevelTree)
                {
                    tlvi.IsSelected = true;
                    tlvi.BringIntoView();
                    tlvi.Focus();
                }
                else
                {
                    tlvi.IsExpanded = true;
                    tlvi.UpdateLayout();
                    count = 0;
                    foreach (Object itemTree in this.Items)
                    {
                        count++;
                        if (itemTree == oneLevelTree)
                        {
                            break;
                        }
                    }
                    ExpandAndSelectItem(tlvi, item);
                }
            }
        }