Mit der Suche ListView für die Unterpositionen passenden string

Ich habe Probleme beim Scannen über ein ListView zu suchen, ein Unterelement, die mit einem bestimmten string. Hier ist mein code:

private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
    {
        string date = datePicker.Value.ToShortDateString();
        int count = Program.booker.listView.Items.Count;

        for (int i = 0; i < count; i++)
        {
            ListViewItem lvi = Program.booker.listView.Items[i];

            if (lvi.SubItems.Equals(date))
            {
                MessageBox.Show("Found!", "Alert");
                Program.booker.listView.MultiSelect = true;
                Program.booker.listView.Items[i].Selected = true;
            }
            else
            {
                MessageBox.Show("Nothing found for " + date, "Alert");
            }
        }
    }

Die ListView liegt auf der Booker-form, und ich bin der Zugriff über den Filter Klasse. Ich möchte die Suche in der gesamten ListView für alle Elemente, die passend zu meiner Datums-Zeichenfolge. Danke!

  • Ist das WPF oder Winforms? Auch, was ist falsch mit Ihrem aktuellen code, ohne den es nicht funktionieren, werfen Fehler?
  • Winforms. Und mein code will einfach nicht funktionieren. Es durchsucht nur die erste Spalte meiner ListView, und nicht die sub-Elemente zu.
  • Sollten Sie nicht in einer Schleife durch Ihre SubItems für jedes Element aus und überprüfen Sie alle von Ihnen? Ich denke lvi.SubItems.Equals(date) ist, der versucht, einen Zeiger auf eine Sammlung mit einem Datum, das wäre immer falsch. Vielleicht ändern Equals zu Contains?
  • Ich bin auf der Suche nach einer Zeichenfolge, und Contains nimmt in einem SubItem als parameter.
  • Haben Sie versucht, Ihren Zustand zu lvi.SubItems.Any(item => item.Equals(date))? Nachdem alle, du bist gefragt, wenn eine der sub-Elemente sind gleich das Datum nicht, wenn der sub-Elemente (als Sammlung) ist gleich dem Datum.
InformationsquelleAutor Ryan Cohen | 2013-07-31
Schreibe einen Kommentar