示例#1
0
            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);
                    }
                }
            }
示例#2
0
            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);
                }
            }