2014-10-29 5 views
5

Ich versuche, den Standard AutoSuggestBox in einer Windows Phone 8.1 XAML App zu verwenden, aber es verhält sich wirklich seltsam.Seltsame Ergebnisse in AutoSuggestBox in Windows Phone 8.1

In einer einfachen Demo, ich habe Sammlung

Items = new ObservableCollection<string> 
     { 
      "a", 
      "b", 
      "c", 
      "d" 
     }; 

und er AutoSuggestBox in XAML:

<AutoSuggestBox ItemsSource="{Binding Items}" /> 

Das Problem ist, dass egal, was ich zu dem AutoSuggestBox schreiben, habe ich immer die ganze Artikel:

enter image description here

Th Die Dokumentation sagt fast nichts, und ich habe keine Proben mit diesem Steuerelement gefunden.

Antwort

4

Basierend auf this blog post, es sieht aus wie das, was Sie erwarten (automatische Filterung) nicht der Fall ist - stattdessen müssen Sie in das TextChanged Ereignis einzuhaken und bevölkern die Suggestions Sammlung selbst.

Vom documentation:

Die App benachrichtigt, wenn der Text vom Benutzer geändert wurde, und ist verantwortlich für die für dieses Steuerelement Anzeige relevante Vorschläge bereitstellt.

6

Versuchen Sie, den folgenden Code:

private void AutoSuggestBox_TextChanged(AutoSuggestBox sender, 
     AutoSuggestBoxTextChangedEventArgs args) 
    { 
      List<string> myList = new List<string>(); 
      foreach (string myString in PreviouslyDefinedStringArray) 
      { 
       if (myString.Contains(sender.Text) == true) 
       { 
        myList.Add(myString); 
       } 
      } 
      sender.ItemsSource = myList; 
    } 

Dieses auf WP 8.1

+0

ein wenig redundant funktionieren sollte, wenn ich bereits eine Antwort sagen mir das gleiche –

+0

Unabhängig akzeptiert, vielen Dank für eine Arbeitslösung, Anmar – Freakishly

+0

es ist absolut in Ordnung, den Code zu schreiben; Der Blogeintrag, der in der angenommenen Antwort erwähnt wird, könnte in Zukunft nicht mehr verfügbar oder verlagert werden. Der Ereignisbehandlungscode sollte in 'if (args.Reason == AutoSuggestionBoxTextChangeReason.UserInput) {...}' eingeschlossen sein, um Redundanz zu vermeiden, wenn ein Vorschlag ausgewählt wird oder der Text programmgesteuert geändert wird. – dlatikay

Verwandte Themen