Comment supprimer tous les éléments ListBox?

J'ai créé deux RadioButton (poids et hauteur). Je vais faire basculer entre les deux catégories. Mais ils partagent les mêmes contrôleurs ListBox (listBox1 et listBox2).

Existe-t-il une bonne méthode pour effacer tous les éléments ListBox plus simples? Je n'ai pas trouvé le removeAll() pour ListBox. Je n'aime pas mon style multi-lignes complexe que j'ai posté ici.

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");
    }
29
demandé sur Nano HE 2010-04-10 03:53:32

7 réponses

N'est-ce pas la même chose que Winform et Webform?

listBox1.Items.Clear();
73
répondu balexandre 2015-06-26 04:40:20

Je pense qu'il serait préférable de lier vos ListBox à une source de données, car il semble que vous ajoutiez les mêmes éléments à chaque listbox. Un exemple simple serait quelque chose comme ceci:

    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
répondu Matt Dearing 2010-04-10 00:41:58

Vous devriez pouvoir utiliser la méthode Clear().

2
répondu user1017477 2012-01-24 14:14:36

Écrivez le code suivant dans le .fichier cs:

ListBox.Article.Effacer ();

2
répondu Pulkit 2013-01-04 06:55:57
while (listBox1.Items.Count > 0){ 
    listBox1.Items.Remove(0);
}
2
répondu DancesWithBamboo 2016-02-23 16:04:54

J'ai fait de cette façon, et fonctionne correctement pour moi:

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

        }

Expliquer: l'utilisation de "Clear ()" efface uniquement les éléments, ne pas supprime ensuite de l'objet, en utilisant RemoveAt () pour supprimer un élément de position de début il suffit de réalocaliser les autres [si vous supprimez l'élément [0], l'élément [1] se transforme en [0] déclenchant un nouvel événement interne], donc enlever de la fin pas d'affect de position des autres, c'est un comportement de pile, de cette façon, nous pouvons empiler sur tous les éléments, réinitialiser l'objet.

0
répondu Bruno 2013-01-21 03:37:33
  • VB ListBox2.Source De Données = Rien
  • C# ListBox2.Source de données = null;
0
répondu Paulos02 2015-08-13 09:53:50