做项目的时候遇到的一个奇葩问题,最后找到的解决办法如下:

代码如下:

/// <summary>

       /// 获取DataGrid的行

       /// </summary>

       /// <param name="dataGrid">DataGrid控件</param>

       /// <param name="rowIndex">DataGrid行号</param>

       /// <returns>指定的行号</returns>

       private DataGridRow GetRow(System.Windows.Controls.DataGrid dataGrid, int rowIndex)

       {

           DataGridRow rowContainer = (DataGridRow)dataGrid.ItemContainerGenerator.ContainerFromIndex(rowIndex);

           if (rowContainer == null)

           {

               dataGrid.UpdateLayout();

               dataGrid.ScrollIntoView(dataGrid.Items[rowIndex]);

               rowContainer = (DataGridRow)dataGrid.ItemContainerGenerator.ContainerFromIndex(rowIndex);

           }

           return rowContainer;

       }