void node_PropertyCollapsed(object sender, PositionedPropertyEventArgs e) { // remember this property is collapsed (for later graph rebuilds) expanded.Expressions.SetCollapsed(e.Property.Expression); // just remove edge from underlying object graph (no need to fully rebuild) e.Property.ObjectGraphProperty.TargetNode = null; LayoutGraph(this.objectGraph); }
void node_PropertyExpanded(object sender, PositionedPropertyEventArgs e) { // remember this property is expanded (for later graph rebuilds) expanded.Expressions.SetExpanded(e.Property.Expression); // add edge (+ possibly nodes) to underlying object graph (no need to fully rebuild) e.Property.ObjectGraphProperty.TargetNode = this.objectGraphBuilder.ObtainNodeForExpression(e.Property.Expression); LayoutGraph(this.objectGraph); }