private void CommandSelectNode_Execute(object sender, ExecutedRoutedEventArgs e) { // Try to find the MethodVM corresponding to the passed NodeVM // and set its selected node NodeVM node = e.Parameter as NodeVM; MethodVM method = Class?.Methods.FirstOrDefault(m => m.Nodes.Contains(node)); if (method != null) { method.SelectedNode = node; } }
private void CommandSelectNode_Execute(object sender, ExecutedRoutedEventArgs e) { // Try to find the MethodVM corresponding to the passed NodeVM // and set its selected node // TODO: Make selection nicer. Finding the corresponding method view model seems wrong since // we have to search in all possible places that have methods. NodeVM node = e.Parameter as NodeVM; MethodVM method = Class?.Methods.FirstOrDefault(m => m.Nodes.Contains(node)) ?? Class?.Variables?.FirstOrDefault(v => v.HasGetter && v.GetterMethod.Nodes.Contains(node))?.GetterMethod ?? Class?.Variables?.FirstOrDefault(v => v.HasSetter && v.SetterMethod.Nodes.Contains(node))?.SetterMethod; if (method != null) { method.SelectedNodes = new[] { node }; } }