我正在将一个BindingList( T)传递给一个列表( T),并且我正在体验这个列表的值一直在用DataGridViewSuppliers.DataSource的值更新自己
mInitialValue As New List(Of T)
Private Property DataSource As BindingList(Of T)
Get
If DataGridViewSuppliers.DataSource Is Nothing Then
DataGridViewSuppliers.DataSource = New BindingList(Of T)
End If
Return CType(DataGridViewSuppliers.DataSource, BindingList(Of T))
End Get
Set(value As BindingList(Of T))
DataGridViewSuppliers.DataSource = value
End Set
End Property
DataSource = lElements
mInitialValue = lSuppAccounts.ToList()我只想将绑定列表的初始值保存到一个单独的列表中。
发布于 2016-01-26 15:15:06
BindingList( T)继承自列表( T),因此当您传递它时,它不会创建副本,它只允许您使用列表( T)的所有这些特性。在任何时候,您都可以将(T的)列表传递回BindingList(Of T),然后使用它的特性。这叫做多态性。您不是在复制数据,而是在传递指向原始列表的内存指针。
您需要的是数据的副本,它不是内存指针,而是自己的内存空间。为此,可以使用列表的CopyTo()方法。它将复制一个副本,然后您可以将其放入另一个列表中。
https://stackoverflow.com/questions/35015856
复制相似问题