在WPF开发过程中,DataGrid控件可谓是十分方便,用于绑定DataTable和List的数据很好用,内部提供了许多方法使用,相对Winform的DataGridView样式也多很多,是经常用到的数据显示控件。
但是唯一的不足,是WPF中的DataGrid没有直接获取选中行行号的方法,可能有的人说可以通过SelectedIndex来获取,但是如果选择多行时,想要获取所有选中行的行号就不行了。选中多行时,可以获取选中行的对象,但是不能直接获取到所有选中行的行号。
之前过于执着,一直寻找直接获取选中多行时每行的行号,最终无果,最近偶然想到,虽然不能直接获取到,但是可以通过其他方式获取。即先获取到选中行的对象,然后通过对象在用IndexOf来获取对象的行号即可,代码如下:
private List<int> selectedIndex = null;
/// <summary>
/// 右键匹配,鼠标按下的时间:获取选中行的行索引
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void SysData_MouseDown(object sender, MouseButtonEventArgs e)
{
int startindex = this.SysData.SelectedIndex;
if (startindex == -1)
{
selectedIndex = null;
ret