none
ListView mit Textbox filtern überhaupt möglich ? RRS feed

  • Frage

  • Hallo zusammen,

    wie die Headline bereits transportiert, frage ich mich ob man eine ListView in WPF mit C# und XML-Input mittels Textbox überhaupt filtern kann.

    Das Ganze sollte (so die graue Theorie) so funktionieren, wie bspw. bei einer Smartphone-Kontakt-Suche via Xamarin-Forms.

    Gebe ich ein Wort ein, fängt die Logik an Buchstabe für Buchstabe die Wörter rauszufiltern und am Ende bleibt mein gesuchtes Wort übrig - (optional wirds noch gehighlighted). Lösche ich die einzelnen Buchstaben in der Textbox füllt sich die Liste wieder.

    ---------

    Cliffs:

    - WPF mit ListView und Textbox erstellt

    - ListView mit Daten/Items via xml-File gefüttert und aufgebaut

    ----------

    - was mir nicht gelingt, ist das Filtern der Liste via Textbox. Den Code habe ich mir mehr schlecht als recht zusammengeschustert. Bspw. macht das  "remove" für mich keinen Sinn.. und am Ende auch das Fokus nicht.

    Are there any Ideas oder Hilffeeeeeeeeeeeeeeeeeeeeee ?

    private void suchbox_TextChanged(object sender, EventArgs e)
    
                {
    
                    if (suchbox.Text != "")
                    {
                        for (int i = listView1.Items.Count - 1; i >= 0; i--)
                        {
                            var item = listView1.Items[i];
                            if (item.Text.ToLower().Contains(suchbox.Text.ToLower()))
                            {
                                item.BackColor = SystemColors.Highlight;
                                item.ForeColor = SystemColors.HighlightText;
                            }
                            else
                            {
                                listView1.Items.Remove(item);
                            }
                        }
                        if (listView1.SelectedItems.Count == 1)
                        {
                            listView1.Focus();
                         }
                    }
                }
            }

    FG

    lalelu


    • Bearbeitet lalelu3000 Dienstag, 16. April 2019 13:24 Inhaltliche Ergänzung
    Dienstag, 16. April 2019 13:21

Antworten

  • Hi lalelu,
    wenn Du die anzuzeigenden Daten über eine CollectionViewSource für die Bindung in der Oberfläche bereitstellst, brauchst Du bei Änderung des Filterwertes nur die Anzeige zu aktualisieren, da dann der Filter mit dem neuen Wert wirksam wird.

    --
    Best Regards / Viele Grüße
    Peter Fleischer (former MVP for Developer Technologies)
    Homepage, Tipps, Tricks

    Dienstag, 16. April 2019 17:40