Usually in order to avoid overlapping, invoking the Layout method should be enough. On Expand/Collapse, if it is performed in the ViewModel, you can throw an event , for instance ExpandCollapsePerformed, the view can listen to a ViewModel's events and simply invoke the Layout function in the event handlers. Actually similar approach is implemented in our OrgChart demo.
this.viewModel.ChildrenIsExpandedChanged += this.OnViewModelChildrenExpandedOrCollapsed;
sender, TeamExpandCollapseChangeEventArgs e)
Point oldPosition = team.Position;
TRY TELERIK'S NEWEST PRODUCT - EQATEC APPLICATION ANALYTICS for WPF.
Learn what features your users use (or don't use) in your application. Know your audience. Target it better. Develop wisely.
Sign up for Free application insights >>