是否有直接的方法来执行此操作,还是需要迭代DataGridView.SelectedRows,然后为每一行访问DataGridViewRow.DataBoundItem以创建一个?
答案 0 :(得分:3)
DataGridView在未启用Linq的情况下不提供SelectedDataRows和SelectedRows,因此,您必须编写foreach循环。
答案 1 :(得分:0)
将“SelectedDataRows”添加到DataGridViews的通用扩展方法:
public static T[] SelectedDataRows<T>(this DataGridView dg) where T : DataRow
{
T[] rows = new T[dg.SelectedRows.Count];
for (int i = 0; i < dg.SelectedRows.Count; i++)
rows[i] = (T)((DataRowView)dg.SelectedRows[i].DataBoundItem).Row;
return rows;
}
这是通用的,因此您可以使用Typed Datasets返回键入的数据行。如果您愿意,您可以让自己只返回DataRow[]
。这也假设您的DataGridView绑定了DataView
。