我有这样的情况:
我有一个列表或数组(没有标记哪个更适合我的目的,但这并不重要)的一些对象(例如,人员列表)。在我的形式中,有一个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合作,所以这也许是一个愚蠢的问题。谢谢你们。
发布于 2013-09-19 14:46:24
您应该直接影响BindingSource (而不是用来创建BindingSource的List ),即:
DirectCast(persons(1), Person).FirstName = "John"https://stackoverflow.com/questions/18897087
复制相似问题