Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>try this i think it work at least worked for me .</p> <pre><code>//datagrid gotfocus event private void dataGrid1_GotFocus(object sender, RoutedEventArgs e) { DependencyObject dep = (DependencyObject)e.OriginalSource; //here we just find the cell got focused ... //then we can use the cell key down or key up // iteratively traverse the visual tree while ((dep != null) &amp;&amp; !(dep is DataGridCell) &amp;&amp; !(dep is DataGridColumnHeader)) { dep = VisualTreeHelper.GetParent(dep); } if (dep == null) return; if (dep is DataGridCell) { DataGridCell cell = dep as DataGridCell; //raise key down event of cell cell.IsSelected = true; cell.KeyDown += new KeyEventHandler(cell_KeyDown); } } void cell_KeyDown(object sender, KeyEventArgs e) { DataGridCell cell = sender as DataGridCell; if (e.Key == Key.Enter) { cell.MoveFocus(new TraversalRequest(FocusNavigationDirection.Next)); cell.IsSelected = false; e.Handled = true; cell.KeyDown -= cell_KeyDown; } } </code></pre> <p>in this code when a cell got focus and user key down on that next cell will get focus. Good luck hope this help you.</p> <p>EDIT :</p> <p>Set this function as datagrid PreviewKeyDown event.</p> <pre><code>private void maindg_PreviewKeyDown(object sender, KeyEventArgs e) { //just accept enter key if (e.Key != Key.Enter) return; DependencyObject dep = (DependencyObject)e.OriginalSource; //here we just find the cell got focused ... //then we can use the cell key down or key up // iteratively traverse the visual tree while ((dep != null) &amp;&amp; !(dep is DataGridCell) &amp;&amp; !(dep is DataGridColumnHeader)) { dep = VisualTreeHelper.GetParent(dep); } if (dep == null) return; if (dep is DataGridCell) { //cancel if datagrid in edit mode maindg.CancelEdit(); //get current cell DataGridCell cell = dep as DataGridCell; //deselect current cell cell.IsSelected = false; //find next right cell var nextCell = cell.PredictFocus(FocusNavigationDirection.Right); //if next right cell null go for find next ro first cell if (nextCell == null) { DependencyObject nextRowCell; nextRowCell = cell.PredictFocus(FocusNavigationDirection.Down); //if next row is null so we have no more row Return; if (nextRowCell == null) return; //we do this because we cant use FocusNavigationDirection.Next for function PredictFocus //so we have to find it this way while ((nextRowCell as DataGridCell).PredictFocus(FocusNavigationDirection.Left) != null) nextRowCell = (nextRowCell as DataGridCell).PredictFocus(FocusNavigationDirection.Left); //set new cell as next cell nextCell = nextRowCell; } //change current cell maindg.CurrentCell = new DataGridCellInfo(nextCell as DataGridCell); //change selected cell (nextCell as DataGridCell).IsSelected = true; // start edit mode maindg.BeginEdit(); } //handl the default action of keydown e.Handled = true; } </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload