ListBox DataSource如何更新(VB.NET)

时间:2014-01-16 09:33:46

标签: vb.net winforms data-binding listbox

我有一个带有对象的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()也无法正常工作。

1 个答案:

答案 0 :(得分:0)

首先,如果您的目标是.NET 2.0或更高版本,那么您根本就不应该使用ArrayList。 List(Of T)基本上取代了ArrayList,在大多数情况下你应该使用它。

在这种情况下,你可以使用List(Of T)并将它绑定到BindingSource并绑定到ListBox或者使用BindingList(Of T)。 BindingSource和BindingList(Of T)都有一些方法,当您对列表进行更改以更新和绑定控件时,可以调用这些方法。