none
Autocomplete Box mit einer ObservableCollection RRS feed

  • Frage

  • Hallo, ich wollte irgendwie ein Suchfeld in einer WP8 Seite einbauen, das schon bei Eingabe alle möglichen Suchergebnisse dafstellt (in einem Listview oder anderem)
    Ich halte meine Daten in einer ObservableCollection
    Wie kann ich das am besten lösen?
    Freitag, 6. Juni 2014 09:58

Antworten

  • Hallo,
    du könntest von der TextBox das TextChanged-Event abonnieren und die Liste entsprechend filtern. Das Ergebnis weißt du der ListBox dann als ItemsSource zu.

    private void OnSearchTermChanged(object sender, TextChangedEventArgs e)
    {
        var filtered = this.items.Where(x => x.StartsWith(tbSearch.Text));
        lbSearchResults.ItemsSource = filtered;
    }
    
    ObservableCollection<string> items = new ObservableCollection<string>();

    Im XAML brauchst du natürlich ein ItemTemplate, dass komplexere Elemente anzeigen kann. Im Codebehind musst du den Ausdruck zum filtern der Items entsprechend anpassen.

    Wenn deine Liste sehr lang ist, solltest du überlegen die Suche asynchron zu gestalten.
    Siehe Asynchrone Programmierung mit Async und Await (C# und Visual Basic)


    Tom Lambert - C# MVP
    Bitte bewertet- und markiert Beiträge als Antwort. Danke.
    Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter
    Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets

    Freitag, 6. Juni 2014 12:16

Alle Antworten