リストをデータソースとして持つリストボックスがあります。私が望むのは、リストにアイテムを追加したり削除したりすると、リストボックス自体が更新されるということです。ソース(リスト)が変更されたときにリストボックスを自動的に更新する方法
今、私はそれを行うことができますが、本当に醜い方法です。
例えば:私は何をやっていることは、私はリストを変更するすべての場所でデータソースを削除し、追加で
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
これは動作しますが、再度、データソースを確認するためにリストボックスを伝えるのいずれかの方法がありますそれをリセットすることなく?
編集:私はフィルタリングする方法 :
てtextBoxテキストでイベントを変更:
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
使用をプレーンなリストの代わりに 'BindingList'や' ObservableCollection'を使います。両方の方法の違いはよく説明されている[ここ](http://stackoverflow.com/a/4284805/2882256)。 –