Как остановить предложения, когда какой-либо из них уже выбран - Windows Phone

Я задал вопрос об использовании GotFocus и TextChanged одновременно - Windows Phone. В предыдущем вопросе текст из AutoSuggestBox очищался при выборе предложений. Так что я использовал bool Переменная типа для проверки, выбрано ли предложение или нет.

Теперь при выборе любого предложения AutoSuggestBox должен прекратить показывать предложения, так как я выбрал то, что хотел выбрать. Поэтому я использовал ту же переменную TextChanged метод тоже.

Код для .xaml что-то вроде:

    <AutoSuggestBox
        x:Name="auto_text_from"
        HorizontalAlignment="Left"
        VerticalAlignment="Center"
        PlaceholderText="Enter Source"
        Height="auto"
        Width="280"
        GotFocus="auto_text_from_GotFocus"
        TextChanged="AutoSuggestBox_TextChanged"/>

И для .xaml.cs является

    private void OnSuggestionChosen(AutoSuggestBox sender, AutoSuggestBoxSuggestionChosenEventArgs args)
    {
        _isSelectingSuggestion = true;
    }

    private void AutoSuggestBox_TextChanged(AutoSuggestBox sender, AutoSuggestBoxTextChangedEventArgs args)
    {
        if(!_isSelectingSuggestion)
        {
            List<string> myList = new List<string>();
            foreach (string myString in stopsList)
            {
                if (sender.Text.Length > 1)
                {
                    if (myString.ToLower().Contains(sender.Text.ToLower()))
                    {
                        myList.Add(myString);
                    }
                }
            }
            sender.ItemsSource = myList;
        }
    }

Но задача не завершена. По сути, я хочу, чтобы, если я выбрал какое-либо предложение из списка, а затем AutoSuggestBox перестало показывать предложения.

Изображение, показывающее предложение даже после выбора:

Может ли кто-нибудь помочь мне выйти из этого.

Заранее спасибо:)

1 ответ

Реализуйте обработчик для события SuggestionChosen.

SuggestionChosen - это событие вызывается, когда пользователь выбирает предложение из раскрывающегося списка. Вы можете закрыть раскрывающийся список в обработчике событий для этого события, а также обработать настройку текста до выбранного значения.

Так что ваш XAML будет похож <AutoSuggestBox Name="someBox" SuggestionChosen="AutoSuggestBox_SuggestionChosen" QuerySubmitted= .../>

Код обработчика

    private void AutoSuggestBox_SuggestionChosen(AutoSuggestBox sender, AutoSuggestBoxSuggestionChosenEventArgs args)
    {
        autoSuggestBox.Text = args.SelectedItem;
        autoSuggestBox.IsSuggestionListOpen = false;
    }

Я бы посоветовал вам также взглянуть на событие QuerySubmitted в AutoSuggestBox

Другие вопросы по тегам