So habe ich ein Listenfeld mit einer Liste als Datenquelle. Ich möchte, dass wenn ich Elemente aus der Liste hinzufüge und entferne, das Listenfeld sich selbst aktualisiert.Wie man ein Listenfeld automatisch aktualisiert, wenn die Quelle (Liste) geändert wird
Im Moment kann ich es aber in einer wirklich hässlichen Art und Weise tun. Was ich tue, ist zu entfernen und die Datenquelle in allen Orten hinzufügen, die ich die Liste ändern:
Zum Beispiel:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
formaciones.Add(New ForDias(Formacion, NumericUpDown1.Value))
ListBox2.DataSource = Nothing
ListBox2.DataSource = formaciones
End Sub
Dies funktioniert, aber ist es eine Möglichkeit, die Listbox zu sagen, wieder die Datenquelle zu überprüfen ohne es zurückzusetzen?
Edit: Wie ich filtern:
Auf der textBox Text geändert Veranstaltung:
Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
ListBox2.DataSource = New BindingList(Of Object)((formaciones.Where(Function(i As ForDias) i.Formacion.ToString().Contains(TextBox1.Text))).ToList())
End Sub
Verwenden eine 'BindingList' oder' ObservableCollection' anstelle einer einfachen Liste. Die Unterschiede beider Methoden sind [hier] (http://stackoverflow.com/a/4284805/2882256) gut erklärt. –