Esempio n. 1
0
 private void ClearChildrenSource(WPFTreeNode node)
 {
     node.ChildrenSource = null;
     foreach (var n in node.Children)
     {
         ClearChildrenSource(n);
     }
 }
Esempio n. 2
0
        private void CreateChildrenRows(WPFTreeNode node)
        {
            int index = Rows.IndexOf(node);

            if (index >= 0 || node == _root) // ignore invisible nodes
            {
                var nodes = node.AllVisibleChildren.ToArray();
                Rows.InsertRange(index + 1, nodes);
            }
        }
Esempio n. 3
0
 private IEnumerable GetChildren(WPFTreeNode parent)
 {
     if (Model != null)
     {
         return(Model.GetChildren(parent.Tag));
     }
     else
     {
         return(null);
     }
 }
Esempio n. 4
0
        public WPFTreeListView()
        {
            Rows             = new ObservableCollectionAdv <WPFTreeNode>();
            _root            = new WPFTreeNode(this, null);
            _root.IsExpanded = true;
            ItemsSource      = Rows;
            ItemContainerGenerator.StatusChanged += ItemContainerGeneratorStatusChanged;

            //Windows Forms font size = WPF font size * 72.0 / 96.0.
            this.FontSize   = 9 * 96.0 / 72.0;
            this.FontFamily = new FontFamily("Microsoft Sans Serif");
            this.Foreground = new SolidColorBrush(Colors.Black);
        }
Esempio n. 5
0
        internal void InsertNewNode(WPFTreeNode parent, object tag, int rowIndex, int index)
        {
            WPFTreeNode node = new WPFTreeNode(this, tag);

            if (index >= 0 && index < parent.Children.Count)
            {
                parent.Children.Insert(index, node);
            }
            else
            {
                index = parent.Children.Count;
                parent.Children.Add(node);
            }
            Rows.Insert(rowIndex + index + 1, node);
        }
Esempio n. 6
0
 private bool HasChildren(WPFTreeNode parent)
 {
     if (parent == Root)
     {
         return(true);
     }
     else if (Model != null)
     {
         return(Model.HasChildren(parent.Tag));
     }
     else
     {
         return(false);
     }
 }
        private void ChangeFocus(WPFTreeNode node)
        {
            var tree = node.Tree;

            if (tree != null)
            {
                var item = tree.ItemContainerGenerator.ContainerFromItem(node) as WPFTreeListViewItem;
                if (item != null)
                {
                    item.Focus();
                }
                else
                {
                    tree.PendingFocusNode = node;
                }
            }
        }
Esempio n. 8
0
        internal void DropChildrenRows(WPFTreeNode node, bool removeParent)
        {
            int start = Rows.IndexOf(node);

            if (start >= 0 || node == _root) // ignore invisible nodes
            {
                int count = node.VisibleChildrenCount;
                if (removeParent)
                {
                    count++;
                }
                else
                {
                    start++;
                }
                Rows.RemoveRange(start, count);
            }
        }
Esempio n. 9
0
        internal void CreateChildrenNodes(WPFTreeNode node)
        {
            var children = GetChildren(node);

            if (children != null)
            {
                int rowIndex = Rows.IndexOf(node);
                node.ChildrenSource = children as INotifyCollectionChanged;
                foreach (object obj in children)
                {
                    WPFTreeNode child = new WPFTreeNode(this, obj);
                    child.HasChildren = HasChildren(child);
                    node.Children.Add(child);
                }

                Rows.InsertRange(rowIndex + 1, node.Children.ToArray());
            }
        }
Esempio n. 10
0
 internal void SetIsExpanded(WPFTreeNode node, bool value)
 {
     if (value)
     {
         if (!node.IsExpandedOnce)
         {
             node.IsExpandedOnce = true;
             node.AssignIsExpanded(value);
             CreateChildrenNodes(node);
         }
         else
         {
             node.AssignIsExpanded(value);
             CreateChildrenRows(node);
         }
     }
     else
     {
         DropChildrenRows(node, false);
         node.AssignIsExpanded(value);
     }
 }