int i = 0;
        private void button2_Click(object sender, RoutedEventArgs e)
        {
            //i取具体的值行
           DataGridRow dr = (DataGridRow)dataGrid1.ItemContainerGenerator.ContainerFromIndex(i);第
                DataGridCellsPresenter presenter = GetVisualChild<DataGridCellsPresenter>(dr);
                DataGridCell cell = (DataGridCell)presenter.ItemContainerGenerator.ContainerFromIndex(0); //取第0列每行单元格                
                cell.Focus();
                   }   public static T GetVisualChild<T>(Visual parent) where T : Visual
        {
            T child = default(T);
            int numVisuals = VisualTreeHelper.GetChildrenCount(parent);
            for (int i = 0; i < numVisuals; i++)
            {
                Visual v = (Visual)VisualTreeHelper.GetChild(parent, i);
                child = v as T;
                if (child == null)
                {
                    child = GetVisualChild<T>(v);
                }
                if (child != null)
                {
                    break;
                }
            }
            return child;
        }

解决方案 »

  1.   


     //第3行第2列对应的单元取得焦点
                DataGridRow dr = (DataGridRow)dataGrid1.ItemContainerGenerator.ContainerFromIndex(3);第                 DataGridCellsPresenter presenter = GetVisualChild<DataGridCellsPresenter>(dr);                 DataGridCell cell = (DataGridCell)presenter.ItemContainerGenerator.ContainerFromIndex(2); //取第2列每行单元格                                 cell.Focus(); 
      

  2.   

    //第3行第2列对应的单元取得焦点        
    DataGridRow dr = (DataGridRow)dataGrid1.ItemContainerGenerator.ContainerFromIndex(3);
    DataGridCellsPresenter presenter = GetVisualChild<DataGridCellsPresenter>(dr);      
    DataGridCell cell = (DataGridCell)presenter.ItemContainerGenerator.ContainerFromIndex(2);
    cell.Focus();