如何在DatagridView中基于所选单元格获取行集合
本文关键字:单元格 获取 集合 于所选 DatagridView | 更新日期: 2023-09-27 18:20:39
我在Windows窗体上有一个DatagridView控件。它的selectionMode属性设置为CellSelect
我想根据所选单元格对DatagridViewRow进行操作。DataGridView控件已绑定到DataSource。
如何根据所选单元格获取"行"集合?
作为Linq提供的答案与提供的语法不兼容。Datagridview不支持Enumerable,因此您必须使用:
IEnumerable<DataGridViewRow> selectedRows = dgPOPLines.SelectedCells.Cast<DataGridViewCell>()
.Select(cell => cell.OwningRow)
.Distinct();
DataGridView.SelectedCells
将为您提供所选单元格的列表。该集合中的每个DataGridViewCell
实例都有一个OwningRow
,这允许您构建自己的行集合。
例如:
using System.Linq;
IEnumerable<DataGridViewRow> selectedRows = dgv.SelectedCells
.Select(cell => cell.OwningRow)
.Distinct();
List<DataGridViewRow> rowCollection = new List<DataGridViewRow>();
foreach(DataGridViewCell cell in dataGridView.SelectedCells)
{
rowCollection.Add(dataGridView.Rows[cell.RowIndex];
}