我有一个带有对象的ArrayList,这个ArrayList用作ListBox的DataSource。将新对象添加到列表框时,如何让列表框更新?
填充列表的代码看起来很简单:
'Form1.ExistingArticles = The ArrayList
'Form1.LB_Articles = The Listbox
Public Sub FillArticleList()
If Form1.ExistingArticles.Count = 0 Then
Exit Sub
End If
Form1.LB_Articles.DataSource = Form1.ExistingArticles
Form1.LB_Articles.ValueMember = "ID"
Form1.LB_Articles.DisplayMember = "ListText"
End Sub
当我向Form1.ExistinArticles添加一个新对象时,我可以看到新对象在那里,但它没有更新。再次调用FillArticleList()也无法正常工作。
答案 0 :(得分:0)
首先,如果您的目标是.NET 2.0或更高版本,那么您根本就不应该使用ArrayList。 List(Of T)基本上取代了ArrayList,在大多数情况下你应该使用它。
在这种情况下,你可以使用List(Of T)并将它绑定到BindingSource并绑定到ListBox或者使用BindingList(Of T)。 BindingSource和BindingList(Of T)都有一些方法,当您对列表进行更改以更新和绑定控件时,可以调用这些方法。