0

私はこの状況を持っています:

いくつかのオブジェクト (たとえば、人のリスト) のリストまたは配列 (どちらが目的に適しているかは判断していませんが、問題ではありません) があります。私のフォームには、すべての人物とその属性を表示したい DataGridView があります。個人の属性は実行時に編集でき、これらの変更を DataGridView ですぐに確認したいと考えています。私はこれに使用BindingSourceしました:

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

persons.DataSource = _persons
myGridView.DataSource = persons

BindingSource (persons) を介して人を追加/削除すると、これは完全に機能します。この変化はすぐにわかります。しかし、1 人を編集したい場合はどうすればよいでしょうか。このクラスを持ってみましょう:

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 を使用するのは初めてなので、これはばかげた質問かもしれません。君たちありがとう。

4

1 に答える 1

2

( BindingSource の作成に使用したものではBindingSourceなく) に直接影響を与える必要があります。つまり、次のとおりです。List

DirectCast(persons(1), Person).FirstName = "John"
于 2013-09-19T14:46:24.563 に答える