private void OpenFileWithSelectedResult(object sender) { try { var result = sender as ListBoxItem; if (result != null) { string[] searchKeys = GetKeys(this.searchKey); var searchResult = result.Content as CodeSearchResult; FileOpener.OpenItem(searchResult); Task.Factory.StartNew(() => { Thread.Sleep(500); this.Dispatcher.BeginInvoke(HighlightStuffInvoker, searchResult.ProgramElement.FullFilePath, searchResult. ProgramElement.DefinitionLineNumber, searchResult.ProgramElement.RawSource, searchKeys); }); var matchDescription = QueryMetrics.DescribeQueryProgramElementMatch(searchResult.ProgramElement, searchBox.Text); LogEvents.OpeningCodeSearchResult(searchResult, SearchResults.IndexOf(searchResult) + 1, matchDescription); } } catch (ArgumentException aex) { LogEvents.UIGenericError(this, aex); MessageBox.Show(FileNotFoundPopupMessage, FileNotFoundPopupTitle, MessageBoxButton.OK); } catch (Exception ee) { LogEvents.UIGenericError(this, ee); MessageBox.Show(FileNotFoundPopupMessage, FileNotFoundPopupTitle, MessageBoxButton.OK); } }