编辑BindingSource的集合

时间:2013-09-19 14:11:55

标签: vb.net collections datagridview datasource bindingsource

我遇到这种情况:

我有一个List或一个数组(没有判断哪个更适合我的目的,但没关系)某些对象(例如人员列表)。在我的表单中有一个DataGridView,我想看到所有人及其属性。可以在运行时编辑Person的属性,我希望在DataGridView中立即看到这些更改。我已经使用了BindingSource

Dim _persons As New List(Of Person)
Dim persons As BindingSource = New BindingSource()

persons.DataSource = _persons
myGridView.DataSource = persons

现在,当我通过BindingSource(人员)添加/删除某人时,这非常有效。这种变化我可以立即看到。但是,如果我想编辑一个人怎么办?让我们上课:

Public Class Person

     Public Property FirstName As Integer
     Public Property SecondName As String
     Public Property Address As String

End Class

如果我想编辑名字,我可以这样做:

 _persons(1).FirstName = "John"

但这是直接通过列表而不是通过BindingSource,所以这个更改不会在DataGridView中生效。有没有办法通过BindingSource来实现这一点,以便在DataGridView中影响这个编辑?

我很抱歉,这是我第一次使用BindingSource,所以这可能是一个愚蠢的问题。谢谢你们。

1 个答案:

答案 0 :(得分:2)

您应该直接影响BindingSource(而不是您用来创建BindingSource的List),即:

DirectCast(persons(1), Person).FirstName = "John"