/// <summary> /// Adds a node to the collection</summary> /// <remarks>Can't contain duplicates!</remarks> /// <param name="item">The Node to add</param> public void Add(Node item) { if (IsReadOnly) { throw new InvalidOperationException("collection is read only"); } if (Contains(item)) { return; } if (m_owner != null) { item.Parent = m_owner; } var ea = new CancelNodeEventArgs(item); bool cancelled = NodeAdding.RaiseCancellable(this, ea); if (cancelled) { return; } m_nodes.Add(item); NodeAdded.Raise(this, new NodeEventArgs(item)); }
/// <summary> /// Raises the NodeExpandedChanging event</summary> /// <param name="e">Event args</param> /// <returns>True iff the event was cancelled</returns> protected virtual bool OnNodeExpandedChanging(CancelNodeEventArgs e) { return NodeExpandedChanging.RaiseCancellable(this, e); }