vb.net将行添加到数据绑定datagridview(T列表)

时间:2014-07-21 01:54:26

标签: vb.net list datagridview

我有两个数据绑定datagridviews,每个都绑定到一个List(Of MyType)。

现在我想将selectedrows(选定的MyTypes)添加到其他datagridview。

直到现在,我做到了: - 遍历selectedrows属性 - 构建MyType的新项目并获取当前行的属性

有更好的方法吗?

我可以轻松检查该项目是否已存在?也许最好只在列表之间移动数据?

谢谢!

1 个答案:

答案 0 :(得分:0)

除非您想使用支持过滤的数据源,例如a DataTable,您需要两个列表。但是,不需要创建对象的副本;您只需将对象从一个绑定列表移动到另一个绑定列表。我建议您将两个列表绑定到BindingSource组件并将它们绑定到网格。然后你可以这样做:

'Get the bound item from each of the selected rows in the first grid.
Dim selectedItems = Me.DataGridView1.SelectedRows.
                                     Cast(Of DataGridViewRow).
                                     Select(Function(row) row.DataBoundItem).
                                     Cast(Of YourItemType).
                                     ToArray()

'Move the selected items from the first list to the second.
For Each item In selectedItems
    list1.Remove(item)
    list2.Add(item)
Next

'Refresh both grids.
Me.BindingSource1.ResetBindings(False)
Me.BindingSource2.ResetBindings(False)