/// <summary> /// This event gets fired anytime the text in the TextBox gets updated. /// It is recommended to check the reason for the text changing by checking against args.Reason /// </summary> /// <param name="sender">The AutoSuggestBox whose text got changed.</param> /// <param name="args">The event arguments.</param> private void asb_TextChanged(AutoSuggestBox sender, AutoSuggestBoxTextChangedEventArgs args) { //We only want to get results when it was a user typing, //otherwise we assume the value got filled in by TextMemberPath //or the handler for SuggestionChosen if (args.Reason == AutoSuggestionBoxTextChangeReason.UserInput) { var matchingContacts = ContactSampleDataSource.GetMatchingContacts(sender.Text); sender.ItemsSource = matchingContacts.ToList(); } }
/// <summary> /// This event gets fired when: /// * a user presses Enter while focus is in the TextBox /// * a user clicks or tabs to and invokes the query button (defined using the QueryIcon API) /// * a user presses selects (clicks/taps/presses Enter) a suggestion /// </summary> /// <param name="sender">The AutoSuggestBox that fired the event.</param> /// <param name="args">The args contain the QueryText, which is the text in the TextBox, /// and also ChosenSuggestion, which is only non-null when a user selects an item in the list.</param> private void asb_QuerySubmitted(AutoSuggestBox sender, AutoSuggestBoxQuerySubmittedEventArgs args) { if (args.ChosenSuggestion != null) { //User selected an item, take an action on it here SelectContact(args.ChosenSuggestion as Contact); } else { //Do a fuzzy search on the query text var matchingContacts = ContactSampleDataSource.GetMatchingContacts(args.QueryText); if (matchingContacts.Count() >= 1) { //Choose the first match SelectContact(matchingContacts.FirstOrDefault()); } else { NoResults.Visibility = Visibility.Visible; } } }