public void RemoveChild(ServerTreeItemViewModel child) { if (Children.Contains(child)) { child.Parent = null; Children.Remove(child); } }
public void AddChild(ServerTreeItemViewModel child) { if (!Children.Contains(child)) { child.Parent = this; Children.Add(child); } }
private void OnChildrenChanged(object sender, NotifyCollectionChangedEventArgs e) { // Note: This section does not account for multiple items being involved in change operations. // Note: This section does not account for the replace operation. if (e.Action == NotifyCollectionChangedAction.Add) { ServerTreeItemViewModel child = (ServerTreeItemViewModel)e.NewItems[0]; child.Parent = this; } else if (e.Action == NotifyCollectionChangedAction.Remove) { ServerTreeItemViewModel child = (ServerTreeItemViewModel)e.OldItems[0]; if (child.Parent == this) { child.Parent = null; } } }