/// <summary>
        /// Handles text changed event of textbox
        /// </summary>
        private void textBox_TextChanged(object sender, TextChangedEventArgs e)
        {
            //see if we have a data source
            if (suggestionSource == null || suppressTextChange)
            {
                //unmark the text chnage flag
                suppressTextChange = false;
                //if not the exit method
                return;
            }

            //verify if we have something in textbox
            if (sourceTextBox.Text.Trim().Length > 0)
            {
                //request to show popup
                ShowPopup();

                //see if we have provider
                if (suggestionProvider != null)
                {
                    //invoke query changed
                    suggestionProvider.QueryChanged(suggestionSource, sourceTextBox.Text.Trim());
                }

                //check if we have some item in list
                if (suggestionListBox.Items.Count < 1)
                {
                    //if not then close the popup
                    suggestionPopup.IsOpen = false;
                }
            }
            else
            {
                //otherwise close popup
                suggestionPopup.IsOpen = false;
            }
        }