protected override void InsertItem(int index, Node item) { if (item == null) { throw new ArgumentNullException(); } if (item.parent != owner) { if (item.parent != null) { item.parent.nodes.Remove(item); } item.parent = owner; base.InsertItem(index, item); TreeModel model = owner.RootTreeModel(); if (model != null) { model.OnStructureChanged(owner); } if (owner.NodeAdded != null) { owner.NodeAdded(item); } } }
protected override void RemoveItem(int index) { Node item = this[index]; item.parent = null; base.RemoveItem(index); TreeModel model = owner.RootTreeModel(); if (model != null) { model.OnStructureChanged(owner); } if (owner.NodeRemoved != null) { owner.NodeRemoved(item); } }