private void childs_ItemsChanged(GraphItems sender, GraphItemChangedEventArgs e) { if (e.Added && sender.Count == 1) { Refresh(); } if (e.Removed && sender.Count == 0) { Refresh(); } if (e.Added) { LinkGraphic lc = new LinkGraphic(); lc.Text = e.Text; lc.ForeColor = this.CurrentLinkColor; lc.Parent = (GraphPanel)Parent; lc.StartElement = this; lc.EndElement = e.GraphItem; lc.StartAnchorSnap = LinkControlSnapAnchor.OnlyCenter; lc.EndAnchorSnap = LinkControlSnapAnchor.OnlyCenter; lc.LineMode = this.LineMode; lc.Quality = this.Quality; lc.SendToBack(); lcmap.Add(e.GraphItem, lc); } if (e.Removed) { LinkGraphic lc = (LinkGraphic)lcmap[e.GraphItem]; if (lc != null) { lcmap.Remove(lc); lc.Parent = null; lc.Dispose(); } } if (e.Internal) { return; } if (e.Added) { e.GraphItem.ParentItems.SilentAdd(this, e.Text, true); } if (e.Removed) { e.GraphItem.ParentItems.SilentRemove(this, true); } }
private void parents_ItemsChanged(GraphItems sender, GraphItemChangedEventArgs e) { if (e.Added && sender.Count == 1) { Refresh(); } if (e.Removed && sender.Count == 0) { Refresh(); } if (e.Internal) { return; } if (e.Added) { e.GraphItem.ChildItems.SilentAdd(this, e.Text, true); } if (e.Removed) { e.GraphItem.ChildItems.SilentRemove(this, true); } }