void DisplayTree_DisplayTreeChanged(object sender, TikzDisplayTree.DisplayTreeChangedEventArgs e) { // This method is called when the Displaytree changes, i.e., when a new OverlayShapeVM is created. // Add a view to display the OverlayShapeVM if (e.Type == TikzDisplayTree.DisplayTreeChangedType.Insert) { foreach (var os in e.AffectedItems) { if (os is OverlayScope) { NewScopeView(os as OverlayScope); } else if (os is OverlayControlPoint) { NewCPView(os as OverlayControlPoint); } else if (os is OverlayNode) { NewNodeView(os as OverlayNode); } } } else if (e.Type == TikzDisplayTree.DisplayTreeChangedType.Clear) { canvas1.Children.Clear(); } }
void DisplayTree_DisplayTreeChanged(object sender, TikzDisplayTree.DisplayTreeChangedEventArgs e) { if (e.Type == TikzDisplayTree.DisplayTreeChangedType.Clear) { // clear bindings foreach (var b in DisplayTreeBindings) { b.Source = null; } DisplayTreeBindings.Clear(); Invalidate(); } if (e.Type == TikzDisplayTree.DisplayTreeChangedType.Insert) { // listen to BB changed to redraw if necessary foreach (var os in e.AffectedItems) { DisplayTreeBindings.Add(BindingFactory.CreateBinding(os, "BB", o => this.Invalidate(), null)); } Invalidate(); } }