예제 #1
0
 /// <summary>
 /// Expands or unexpands a specific node
 /// </summary>
 /// <param name="node"></param>
 /// <param name="expand"></param>
 public void ExpandNode(TaskTreeNode node, bool expand)
 {
     if (expand != node.isExpanded)
     {
         int index = stackPanel.Children.IndexOf(node);
         if (expand)
         {
             node.isExpanded = true;
             try
             {
                 foreach (TaskTreeNode n in node.children)
                 {
                     stackPanel.Children.Insert(index + 1, n);
                     InitalizeExpandNode(n);
                     index += GetVisibleChildCount(n) + 1;
                 }
             }
             catch (Exception ex) { Console.WriteLine(ex); RefreshAll(); return; }
         }
         else
         {
             int children = GetVisibleChildCount(node);
             try { stackPanel.Children.RemoveRange(index + 1, children); }
             catch (Exception ex) { Console.WriteLine(ex); RefreshAll(); return; }
             node.isExpanded = false;
         }
         node.ExpanderRefresh();
     }
 }
예제 #2
0
        public void AddNode(Task task, string parentID, bool expandParent)
        {
            TaskTreeNode parentNode = nodeDictionary[parentID];
            TaskTreeNode node       = new TaskTreeNode(task, parentNode.depth + 1);

            if (expandParent)
            {
                ExpandNode(parentNode, true);
            }
            parentNode.children.Add(node);
            parentNode.ExpanderRefresh();
            NodeAddToTree(node, parentNode);
        }
예제 #3
0
        /// <summary>
        /// Creates the subnodes for a node assuming they were not there before
        /// </summary>
        /// <param name="node"></param>
        private void InitalizeExpandNode(TaskTreeNode node)
        {
            if (node.isExpanded)
            {
                int index = stackPanel.Children.IndexOf(node);
                foreach (TaskTreeNode n in node.children)
                {
                    stackPanel.Children.Insert(index + 1, n);
                    InitalizeExpandNode(n);
                    index += GetVisibleChildCount(n) + 1;
                }
            }

            node.ExpanderRefresh();
        }