internal void OnNodeInserted(Node parent, int index, Node node) { if (NodesInserted != null) { TreeModelEventArgs args = new TreeModelEventArgs(GetPath(parent), new int[] { index }, new object[] { node }); NodesInserted(this, args); } }
protected override void InsertItem(int index, Node item) { if (item == null) { throw new ArgumentNullException("item"); } if (item.Parent != _owner) { if (item.Parent != null) { item.Parent.Nodes.Remove(item); } item._parent = _owner; item._index = index; for (int i = index; i < Count; i++) { this[i]._index++; } base.InsertItem(index, item); TreeModel model = _owner.FindModel(); if (model != null) { model.OnNodeInserted(_owner, index, item); } } }