TreeView.TreeNodeCollection.cs 872 B

1234567891011121314151617181920212223242526272829303132333435
  1. using System.ComponentModel;
  2. namespace System.Windows.Forms
  3. {
  4. public class TreeNodeCollection : BindingList<TreeNode>
  5. {
  6. private TreeView owner;
  7. private TreeNode Parent { get; }
  8. internal void SetOwner(TreeView owner)
  9. {
  10. this.owner = owner;
  11. foreach (var item in this)
  12. item.SetOwner(owner);
  13. }
  14. public new TreeNode Add(TreeNode node)
  15. {
  16. base.Add(node);
  17. node.SetOwner(owner);
  18. node.SetParent(Parent);
  19. return node;
  20. }
  21. public TreeNode Add(string text) => Add(new TreeNode() { Text = text });
  22. public void AddRange(TreeNode[] nodes)
  23. {
  24. foreach (var node in nodes)
  25. Add(node);
  26. }
  27. internal TreeNodeCollection(TreeNode parent) => Parent = parent;
  28. }
  29. }