private bool NavigateTo(SearchableEntry entry) { if (entry.SearchableEntryType == SearchableEntryOption.Variable) { itemToFocus = entry.ModelItem.Parent.Parent; HighlightModelItem(itemToFocus); this.lastNavigatedItem = itemToFocus; var designerView = this.editingContext.Services.GetService <DesignerView>(); // Open the variable designer. designerView.CheckButtonVariables(); designerView.variables1.SelectVariable(entry.ModelItem); } else if (entry.SearchableEntryType == SearchableEntryOption.Argument) { itemToFocus = this.modelService.Root; HighlightModelItem(itemToFocus); var designerView = this.editingContext.Services.GetService <DesignerView>(); // Open the argument designer. designerView.CheckButtonArguments(); designerView.arguments1.SelectArgument(entry.ModelItem); this.lastNavigatedItem = entry.ModelItem; } else { itemToFocus = entry.ModelItem; HighlightModelItem(itemToFocus); this.lastNavigatedItem = itemToFocus; ICommandService commandService = this.editingContext.Services.GetService <ICommandService>(); if (commandService != null) { commandService.ExecuteCommand(CommandValues.ShowProperties, null); } PropertyInspector propertiesGrid = this.designer.PropertyInspectorView as PropertyInspector; propertiesGrid.SelectPropertyByPath(entry.PropertyPath); if (ShouldShowSearchToolTip(itemToFocus)) { Dispatcher.CurrentDispatcher.BeginInvoke(new Action(() => { WorkflowViewElement viewElement = itemToFocus.View as WorkflowViewElement; if (viewElement != null) { this.adornerLayer = AdornerLayer.GetAdornerLayer(viewElement as WorkflowViewElement); if (this.adornerLayer != null) { DesignerView designerView = this.editingContext.Services.GetService <DesignerView>(); string toolTipText = string.Format(CultureInfo.CurrentUICulture, SR.SearchHintText, entry.ModelProperty.Name); this.toolTipAdorner = new SearchToolTipAdorner(viewElement, designerView, toolTipText); viewElement.CustomItemStatus = "SearchToolTip=" + toolTipText; this.lastWorkflowViewElement = viewElement; this.adornerLayer.Add(this.toolTipAdorner); } } }), DispatcherPriority.ApplicationIdle); } } return(true); }