public bool Remove(View item) { if (item == null) { return(false); } var index = Views.IndexOf(item); if (index >= 0) { item.Parent = null; item.Navigation = null; var removed = new List <View> { item }; Views.Remove(item); OnRemoved(item); ChildrenRemoved?.Invoke(this, new LayoutEventArgs(index, 1, removed)); return(true); } return(false); }
public void Clear() { var count = _views.Count; if (count > 0) { var removed = new List <View>(_views); _views.Clear(); ChildrenRemoved?.Invoke(this, new LayoutEventArgs(0, count, removed)); } }
public void RemoveAt(int index) { if (index >= 0 && index < _views.Count) { var item = _views[index]; item.Parent = null; item.Navigation = null; var removed = new List <View> { item }; _views.RemoveAt(index); ChildrenRemoved?.Invoke(this, new LayoutEventArgs(index, 1, removed)); } }
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); }