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