예제 #1
0
 /// <summary>
 /// Removes the given child from this <see cref="DataTreeObject"/>'s children.
 /// </summary>
 /// <param name="child"></param>
 protected internal void RemoveChild(DataTreeObject child)
 {
     if (_Children.Contains(child))
     {
         _Children.Remove(child);
     }
 }
예제 #2
0
 /// <summary>
 /// Adds the given child to this <see cref="DataTreeObject"/>'s children.
 /// </summary>
 /// <param name="child"></param>
 protected internal void AddChild(DataTreeObject child)
 {
     if (!_Children.Contains(child))
     {
         _Children.Add(child);
     }
 }
예제 #3
0
        /// <summary>
        /// The internal variant of <see cref="ConvertHierarchyToTreeNodes"/> that handles the recursion.
        /// </summary>
        /// <param name="current"></param>
        /// <param name="targetParent"></param>
        protected internal void CreateHierarchy(DataTreeObject current, TreeNode targetParent)
        {
            foreach (DataTreeObject child in current.Children)
            {
                TreeNode childAsTreeNode = child.ToTreeNode();
                DataTreeObjectEventMarshaller.RegisterTreeNodeBinding(child, childAsTreeNode);

                if (child.Children.Count > 0)
                {
                    CreateHierarchy(child, childAsTreeNode);
                }
                targetParent.Nodes.Add(childAsTreeNode);
            }
        }
예제 #4
0
 /// <summary>
 /// Construct a new <see cref="DataTreeObject"/>.
 /// </summary>
 /// <param name="parent">The parent <see cref="DataTreeObject"/> to add this object to.</param>
 public DataTreeObject(DataTreeObject parent = null)
 {
     Parent = parent;
 }
예제 #5
0
 /// <summary>
 /// Registers a binding from a <see cref="DataTreeObject"/> to a <see cref="TreeNode"/>.
 /// </summary>
 /// <param name="data"></param>
 /// <param name="node"></param>
 public static void RegisterTreeNodeBinding(DataTreeObject data, TreeNode node)
 {
     NodeBindings[node] = data;
 }