31 Stimmen

C# Alle Elemente in ListView löschen

Ich versuche, meine Listenansicht zu löschen, aber die Löschmethode funktioniert nicht:

myListView.Items.Clear();

Das funktioniert nicht. Wenn ich in dieser Zeile einen Haltepunkt setze, wird die Zeile ausgeführt, aber meine Listenansicht ist nicht leer. Wie kommt das?

Ich fülle meine Listview, indem ich ihre Datenquelle auf eine Datentabelle einstelle.

Meine Lösung ist nun, die Datenquelle auf eine leere Datentabelle zu setzen.

Ich frage mich nur, warum klare nicht den Trick machen?

Ich verwende eine Masterseite. Hier etwas Code einer Inhaltsseite, wenn ein Button gedrückt wird. Die Methode SearchTitle füllt die ListView.

Einschlägiger Code:

        protected void Zoek()
    {
        // Clear listbox
        ListView1.DataSource = new DataTable();
        ListView1.DataBind();

        switch (ddlSearchType.SelectedValue)
        {
            case "Trefwoorden":
                SearchKeyword();
                break;
            case "Titel":
                SearchTitle();
                break;
            case "Inhoud":
                SearchContent();
                break;
        }
    }

Methode, die die ListView füllt

        private void SearchTitle()
    {
        // Make panel visible
        pnlResult.Visible = true;
        pnlKeyword.Visible = false;

        Search Search = new Search(txtSearchFor.Text);
        ListView1.DataSource = Search.SearchTitle();
        ListView1.DataBind();
    }

4 Stimmen

Ist dies Winforms oder WPF?

2voto

Kümmern Sie sich nicht um Clear(). Mach einfach dies: ListView.DataSource = null; ListView.DataBind();

Der Schlüssel ist die Funktion databind(); Funktioniert bei mir jedes Mal.

2voto

saurabh gupta Punkte 29

Das Problem entsteht, weil Sie versuchen, das gesamte Listenfeld zu löschen. Verwenden Sie einfach listView1.Items.Clear();

2voto

Zach Tuttle Punkte 1825

Dies ist ein bisschen spät, aber dies funktioniert für mich zumindest mit UWP

myListView.ItemsSource = null;

1voto

nisan Punkte 29

Versuchen Sie es hiermit:

myListView.ItemsSource = new List< DictionaryEntry >();

0voto

Martin Moser Punkte 550

Ich würde vorschlagen, die Zeilen aus der zugrundeliegenden DataTable zu entfernen, oder wenn Sie die Datentabelle nicht mehr benötigen, setzen Sie die Datenquelle auf null.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X