/// <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));
            }
Пример #2
0
 /// <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);
 }