public void RemoveChildren(IEnumerable <ITreeItem> children) { List <ITreeItem> removed = new List <ITreeItem>(); foreach (ITreeItem child in children) { if (Remove(child, false)) { removed.Add(child); } } if (removed.Count > 0) { TreeItemChildrenRemoveEventArgs args = new TreeItemChildrenRemoveEventArgs(removed); ChildrenRemoved?.Invoke(this, args); } }
private bool Remove(ITreeItem child, bool sendEvent) { if (children.Contains(child)) { child.Parent = null; children.Remove(child); if (sendEvent) { TreeItemChildrenRemoveEventArgs args = new TreeItemChildrenRemoveEventArgs(new List <ITreeItem>() { child }); ChildrenRemoved?.Invoke(this, args); } return(true); } return(false); }