C# - Entfernen Sie alle Elemente aus der listbox
Habe ich eine C# - Windows forms verwendet, eine listbox mit einer gebundenen Liste für die datasource fest. Die Liste ist erstellt aus einer text-Datei auf dem computer. Ich bin versuchen, um eine "alle Entfernen" - button für diese listbox und bin mit ein wenig Mühe.
Zunächst ist hier der relevante code:
private void btnRemoveAll_Click(object sender, EventArgs e)
{
//Use a binding source to keep the listbox updated with all items
//that we add
BindingSource bindingSource = (BindingSource)listBox1.DataSource;
//There doesn't seem to be a method for purging the entire source,
//so going to try a workaround using the main list.
List<string> copy_items = items;
foreach (String item in copy_items)
{
bindingSource.Remove(item);
}
}
Habe ich versucht, foreaching die bindingSource, aber es gibt eine enumeration Fehler und will einfach nicht funktionieren. Soweit ich das sagen kann, gibt es nicht eine code einfach Säuberung eine ganze Quelle, so ich versuchte, gehen Sie durch die Liste selbst, und entfernen Sie Sie über die item-Namen, aber das funktioniert auch nicht, da die foreach-tatsächlich gibt ein Objekt zurück oder sowas und nicht einen string.
Irgendwelche Vorschläge, wie dies zu tun?
- Haben Sie versucht, die
Clear()
Methode? - stackoverflow.com/questions/2611667/... , java2s.com/Code/CSharp/GUI-Windows-Form/... , codeproject.com/Articles/19698/... ,und versuchen Sie, diese drei Artikel...
- Ich habe versucht clear();
- alle diese links, die 404 für mich aus irgendeinem Grund.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie das Listbox gebunden an eine BindingSource mit einige generische Liste, dann können Sie genau dies tun:
Auf dem anderen handy, mit einem Verweis auf die darunterliegende Liste in Ihrer Form, Viewmodel oder was auch immer würde den trick tun aswell.
BEARBEITEN:
Dies funktioniert nur, wenn Ihre Liste ist eine ObservableCollection. Für die normale Liste, die Sie versuchen können, rufen Sie ResetBindings() der BindingSource zu erzwingen Sie eine Aktualisierung.
Können Sie es direkt tun, indem Sie eingeben