Vb.net 从DataGridView创建数据绑定对象的多个副本-如何将它们解耦?

Vb.net 从DataGridView创建数据绑定对象的多个副本-如何将它们解耦?,vb.net,databound,Vb.net,Databound,我有一个DataGridView对象,我已将从数据库查询返回的对象列表(类型为Asset)绑定到该对象 我正在用Visual Studio 2005用VB编程 我想从DataGridView中的选定行获取绑定对象的两个副本(称为oldAsset和newAsset),根据表单上其他控件的输入更新newAsset,并将oldAsset和newAsset传递给一个函数,该函数将更新数据库中的相应记录 我试着像这样抓取两份副本: Dim currentRow As DataGridViewRow = M

我有一个DataGridView对象,我已将从数据库查询返回的对象列表(类型为Asset)绑定到该对象

我正在用Visual Studio 2005用VB编程

我想从DataGridView中的选定行获取绑定对象的两个副本(称为oldAsset和newAsset),根据表单上其他控件的输入更新newAsset,并将oldAsset和newAsset传递给一个函数,该函数将更新数据库中的相应记录

我试着像这样抓取两份副本:

Dim currentRow As DataGridViewRow = Me.AssetDataGridView.CurrentRow
Dim newAsset As Asset
newAsset = currentRow.DataBoundItem
Dim oldAsset As Asset
oldAsset = currentRow.DataBoundItem
在oldAsset和newAsset上打开一个监视窗口,表示此时提取了适当的值。但是当我试图改变一个新资产的属性时,比如

newAsset.CurrentLocationID = cboLocations.SelectedValue
我看到oldAsset中相应的值也发生了变化。这不是我想要的,但这显然是我告诉计算机要做的

我如何告诉计算机做我想做的事


提前谢谢

找出了问题所在。根本就没有数据绑定

新资产和旧资产是肤浅的复制品。我想要深度拷贝

我实现了ICloneable,编写了一个Clone()函数来执行memberwise复制,并编写了

    Dim oldAsset As Asset
    oldAsset = currentRow.DataBoundItem
    Dim newAsset As Asset = oldAsset.Clone()