1、DataGrid的选择有三种模式
整行、单个 Cell 、单个 Cell 和 点行头选择整行
SelectionUnit="CellOrRowHeader";
SelectionUnit="Cell";
SelectionUnit="FullRow";
我们设置为:SelectionUnit="CellOrRowHeader";
2、获取选中的单行行号
private bool GetCellXY(DataGrid dg, ref int rowIndex, ref int columnIndex)//获取选中的单行的行和列索引号
{
var _cells = dg.SelectedCells;//获取选中单元格的列表
if (_cells.Any())
{
rowIndex = dg.Items.IndexOf(_cells.First().Item);
columnIndex = _cells.First().Column.DisplayIndex;
return true;
}
return false;
}
3、获取选中的多行行号
private bool GetMultiRowNum(DataGrid dg, ref int [] rowIndex)//获取DataGrid选中的多行行号
{
rowIndex = new int[dg.SelectedCells.Count];//获取选中行的总数
if (dg != null && dg.SelectedCells.Count > 0)
{
for (int i = 0; i < dg.SelectedCells.Count; i++)
{
rowIndex[i]= dg.Items.IndexOf(dg.SelectedCells[i].Item);
}
return true;
}
return false;
}