it-swarm.com.de

Wie entferne ich alle ListBox-Elemente?

Ich habe zwei RadioButton (Gewicht und Höhe) erstellt. Ich werde zwischen den beiden Kategorien wechseln. Sie haben jedoch dieselben ListBox-Controller (ListBox1 und ListBox2).

Gibt es eine gute Methode, um alle ListBox-Elemente einfacher zu löschen? Ich habe die removeAll () für ListBox nicht gefunden. Ich mag meinen komplexen Multi-Line-Stil, den ich hier gepostet habe, nicht.

private void Weight_Click(object sender, RoutedEventArgs e)
    {
        // switch between the radioButton "Weith" and "Height"
        // Clear all the items first
        listBox1.Items.Remove("foot"); 
        listBox1.Items.Remove("inch");
        listBox1.Items.Remove("meter");
        listBox2.Items.Remove("foot");
        listBox2.Items.Remove("inch");
        listBox2.Items.Remove("meter");

        // Add source units items for listBox1
        listBox1.Items.Add("kilogram");
        listBox1.Items.Add("pound");

        // Add target units items for listBox2
        listBox2.Items.Add("kilogram");
        listBox2.Items.Add("pound");
    }

    private void Height_Click(object sender, RoutedEventArgs e)
    {
        // switch between the radioButton "Weith" and "Height"
        // Clear all the items first
        listBox1.Items.Remove("kilogram");
        listBox1.Items.Remove("pound");
        listBox2.Items.Remove("kilogram");
        listBox2.Items.Remove("pound");

        // Add source units items for listBox1
        listBox1.Items.Add("foot");
        listBox1.Items.Add("inch");
        listBox1.Items.Add("meter");

        // Add target units items for listBox2
        listBox2.Items.Add("foot");
        listBox2.Items.Add("inch");
        listBox2.Items.Add("meter");
    }
31
Nano HE

ist nicht das Gleiche wie Winform und Webform?

listBox1.Items.Clear();
75
balexandre

Ich denke, es wäre besser, Ihre ListBoxen tatsächlich an eine Datenquelle zu binden, da es so aussieht, als würden Sie jeder Listbox die gleichen Elemente hinzufügen. Ein einfaches Beispiel wäre etwa so:

    private List<String> _weight = new List<string>() { "kilogram", "pound" };
    private List<String> _height = new List<string>() { "foot", "inch", "meter" };

    public Window1()
    {            
        InitializeComponent();
    }        

    private void Weight_Click(object sender, RoutedEventArgs e)
    {
        listBox1.ItemsSource = _weight;
        listBox2.ItemsSource = _weight;
    }

    private void Height_Click(object sender, RoutedEventArgs e)
    {
        listBox1.ItemsSource = _height;
        listBox2.ItemsSource = _height;
    }
8
Matt Dearing

Schreiben Sie den folgenden Code in die CS-Datei:

ListBox.Items.Clear ();

2
Pulkit

Sie sollten die Clear()-Methode verwenden können.

2
user1017477
while (listBox1.Items.Count > 0){ 
    listBox1.Items.Remove(0);
}
2
  • VB ListBox2.DataSource = Nichts
  • C # ListBox2.DataSource = null;
0
Paulos02

Ich habe auf diesem Weg gemacht und arbeite ordentlich zu mir:

if (listview1.Items.Count > 0)
        {
            for (int a = listview1.Items.Count -1; a > 0 ; a--)
            {
                listview1.Items.RemoveAt(a);
            }
                listview1.Refresh();

        }

Erläutern: Mit "Clear ()" werden nur die Elemente gelöscht. Nicht Entfernt dann das Objekt. Entfernen Sie mithilfe von RemoveAt () ein Element mit der Anfangsposition Ordnen Sie einfach die anderen Elemente neu zu [wenn Sie Element entfernen [0], item [1] verwandelt sich in [0], wodurch ein neues internes Ereignis ausgelöst wird.]... Entfernen des Endpunkts keine Auswirkung auf die Position anderer, es ist ein Stack-Verhalten. Auf diese Weise können wir alle Elemente stapeln und das Objekt zurücksetzen .

0
Bruno