我有一个.Net 4.0 Winforms应用程序,它有一个绑定到List(对象)的DataGridView。
我需要实现某种类型的更改跟踪,以便当用户在网格视图中编辑数据时,我可以确定列表中的哪些对象已被修改。
我正在寻找的是跟踪列表项更改的最轻量级方法。我在应用程序中有很多DataGridViews和很多列表。许多List对象都有很多属性,所以我想避免臃肿并让代码尽可能干净。
在应用程序的较早实现中,我们使用DataSet并将表绑定到DataGridViews。这很好,因为我们可以从底层的DataTables获取RowState。据推测,单独的DataGridViews不能维护我能得到的任何状态跟踪信息吗?
目前我正在考虑在我的列表中的对象上实现IChangeTracking,但如果我错过了已经实现的跟踪绑定到DataGridViews的列表中的更改的方法,我将不胜感激。
我使用的代码类似于以下内容:
Private Class MyData
Public Data1 As String
Public Data2 As String
End Class
Private Sub DoStuff()
Dim MyList As New List(Of MyData)
MyDataGridView.DataSource = MyList
MyDataGridView.Columns(0).DataPropertyName = "Data1"
MyDataGridView.Columns(1).DataPropertyName = "Data2"
End Sub