/// <summary>
        /// Searches this instance.
        /// </summary>
        private void Search()
        {
            if (this.SingleConceptMatching.InputBoxText != this.lastInputBoxSearch)
            {
                this.lastInputBoxSearch = this.SingleConceptMatching.InputBoxText;

                if (this.connected)
                {
                    if (!SingleConceptMatchingPage.ValidateInputText(this.SingleConceptMatching.InputBoxText))
                    {
                        this.StatusText.Text = SingleConceptMatchingPage.InputTextValidationFailed;
                        return;
                    }

                    this.StatusText.Text = SingleConceptMatchingPage.SearchInProgressText;
                    this.ShowProgressBar();

                    this.SingleConceptMatching.InputBoxItemsSource = null;

                    FilterItem filterItem = this.SingleConceptMatching.SubsetPickerSelectedItem as FilterItem;

                    TerminologyManager.SearchInputField(SingleConceptMatchingPage.FixupInputText(this.SingleConceptMatching.InputBoxText), filterItem.SubsetCollection);
                }
            }
            else if (this.lastInputBoxResults != null && this.SingleConceptMatching.InputBoxText == this.lastInputBoxResults.SearchTextOriginal)
            {
                this.SingleConceptMatching.InputBoxItemsSource = this.lastInputBoxResults.InputFieldResults;
            }
        }
        /// <summary>
        /// Handles the input box search completed event of the Terminology Manager.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="InputFieldSearchCompletedEventArgs"/> instance containing the event data.</param>
        private void TerminologyManagerInputBoxSearchCompleted(object sender, InputFieldSearchCompletedEventArgs e)
        {
            // Check search is for the latest value in the text box
            if (SingleConceptMatchingPage.FixupInputText(this.SingleConceptMatching.InputBoxText) != e.SearchTextOriginal)
            {
                return;
            }

            if (e.Successful)
            {
                if (e.InputFieldResults != null && e.InputFieldResults.Count > 0)
                {
                    this.lastInputBoxResults = e;
                    this.SingleConceptMatching.InputBoxItemsSource = e.InputFieldResults;

                    if (e.ExceedsMaxTotal)
                    {
                        this.StatusText.Text = string.Format(System.Globalization.CultureInfo.CurrentCulture, SingleConceptMatchingPage.MoreMatchesFoundText, e.InputFieldResults.Count);
                    }
                    else
                    {
                        this.StatusText.Text = string.Format(System.Globalization.CultureInfo.CurrentCulture, SingleConceptMatchingPage.MatchesFound, e.InputFieldResults.Count);
                    }
                }
                else
                {
                    this.StatusText.Text = SingleConceptMatchingPage.NoMatchesFoundText;
                }
            }
            else
            {
                this.StatusText.Text = SingleConceptMatchingPage.NoMatchesFoundDueToErrorText;
            }

            this.HideProgressBar();
        }