private void PopulateGraphSource(HierarchicalNodeViewModel node, GraphSourceBase<HierarchicalNodeViewModel, LinkViewModelBase<HierarchicalNodeViewModel>> graphSource) { using (graphSource) { graphSource.AddNode(node); foreach (HierarchicalNodeViewModel subNode in node.Children) { using (var link = new LinkViewModelBase<HierarchicalNodeViewModel>(node, subNode)) { graphSource.AddLink(link); this.PopulateGraphSource(subNode, graphSource); } } } }
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { GraphSourceBase<HierarchicalNodeViewModel, LinkViewModelBase<HierarchicalNodeViewModel>> graphSource = null; using (graphSource = new GraphSourceBase<HierarchicalNodeViewModel, LinkViewModelBase<HierarchicalNodeViewModel>>()) { var collection = value as IEnumerable; if (collection != null) { foreach (HierarchicalNodeViewModel item in collection) { this.PopulateGraphSource(item, graphSource); } } } return graphSource; }