Hi use the following code,
DataGridCell objCellToFocus = DataGridExtensions.GetCell(Dg,(DataGridRow)Dg.ItemContainerGenerator.ContainerFromIndex(1), 2);
objCellToFocus.Focus();
public static class DataGridExtensions
{
public static DataGridCell GetCell(this DataGrid grid, DataGridRow row, int columnIndex = 0)
{
if (row == null) return null;
var presenter = FindVisualChild<datagridcellspresenter>(row);
if (presenter == null) return null;
var cell = (DataGridCell)presenter.ItemContainerGenerator.ContainerFromIndex(columnIndex);
if (cell != null) return cell;
grid.ScrollIntoView(row, grid.Columns[columnIndex]);
cell = (DataGridCell)presenter.ItemContainerGenerator.ContainerFromIndex(columnIndex);
return cell;
}
public static IEnumerable<t> FindVisualChildren<t>(DependencyObject depObj) where T : DependencyObject
{
if (depObj != null)
{
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(depObj); i++)
{
DependencyObject child = VisualTreeHelper.GetChild(depObj, i);
if (child != null && child is T)
{
yield return (T)child;
}
foreach (T childOfChild in FindVisualChildren<t>(child))
{
yield return childOfChild;
}
}
}
}
public static childItem FindVisualChild<childitem>(DependencyObject obj) where childItem : DependencyObject
{
foreach (childItem child in FindVisualChildren<childitem>(obj))
{
return child;
}
return null;
}
}
</childitem></childitem></t></t></t></datagridcellspresenter>