Как остановить предложения, когда какой-либо из них уже выбран - 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