combobox.Items.Clear() "funktioniert" nicht



  • Hallo,

    leider lassen sich Einträge aus meiner Combobox nicht löschen, d.h. bei jeder Aktion, die wieder zum Befüllen dient, werden die alten Elemente nicht gelöscht und nur die neuen angehängt, sondern alle bereits vorhandenen zzgl den neuen werden gelistet.

    Hier mal ein Beispiel, wie ich die Combobox befülle

    private void cbPLZ_SelectedIndexChanged(object sender, EventArgs e)
            {
                tblplz plz = cbPLZ.SelectedItem as tblplz;
                if (plz!= null)
                {
                    cbStrasse.Items.Clear();                               cbStrasse.Items.AddRange(D_Adresse.AlleStrassen(plz.Nummer.ToString()).ToArray());
    
                    if (cbStrasse.Items.Count > 0)
                    {
                        fireEvent = false;
                        cbStrasse.SelectedIndex = -1;
                        fireEvent = true;
                    }
                }
            }
    

    Leider bewirkt cbStrasse.Items.Clear() nichts ... 😞
    Was mache ich fals? Wie kann ich meine Combobox leeren?



  • Was passiert, wenn du den AddRange-Aufruf mal testweise weglässt?

    Möglicherweise liefert AlleStrassen die alten Einträge nochmal.



  • AddRange beim zweiten mal weg gelassen und die Liste wird tatsächlich geleert - steht nichts mehr drin!

    Wie kann ich dann die alten Elemente raus werfen, so dass es auch bei mehrmaligem Aufrufen der Funktion nur einmalig die Werte gelistet werden?



  • Lavera schrieb:

    Wie kann ich dann die alten Elemente raus werfen, so dass es auch bei mehrmaligem Aufrufen der Funktion nur einmalig die Werte gelistet werden?

    Zuerst prüf nach, ob AlleStrassen wirklich die alten Einträge nochmal liefert. Und falls ja, finde heraus, warum. Möglicherweise ist ein Bug in AlleStrassen, möglicherweise benutzt du es falsch. Aus dem gezeigten Code ist das nicht zu erkennen.



  • Danke - hab die List<T>, die ich befülle nicht geleert,so wurden wie von dir vermutet auch immer die alten Einträge wieder mit angezeigt.


Anmelden zum Antworten