如何将焦点设置为WPF工具包datagrid的特定单元格

我正在使用WPF工具包提供的DataGrid控件来显示产品列表及其OpenStock,描述等。在这个DataGrid中,我将OpenStock列设置为可编辑,其余是不可编辑的。 我现在想要什么,当我的这个窗口加载,我想将键盘焦点设置为OpenStock列的第一个单元格,如果可能的话,在编辑模式下。 我搜索了这个2天,最后在这里发帖。

任何帮助或代码示例都会有所帮助。

                    

非常感谢……..

您需要将当前单元格设置为您想要编辑的单元格,然后在Loaded处理程序中调用BeginEdit :

 dataGrid1.CurrentCell = new DataGridCellInfo( dataGrid1.Items[0], dataGrid1.Columns[3]); dataGrid1.BeginEdit(); 

如果在XAML中为DataGridTextColumn指定名称,则可以使用该名称而不是Columns[3]

使用此代码将滚动视图移动到特定单元格

dgv.ScrollIntoView(dgv.Items [row],dgv.Columns [col]);

使用下面的function,它会工作。

 private void SetFocusOnGrid(DataGrid grid, int index) { grid.ScrollIntoView(grid.Items.GetItemAt(index)); grid.SelectionMode = DataGridSelectionMode.Single; grid.SelectionUnit = DataGridSelectionUnit.FullRow; grid.SelectedIndex = index; DataGridRow row = (DataGridRow)grid.ItemContainerGenerator.ContainerFromIndex(index); row.MoveFocus(new TraversalRequest(FocusNavigationDirection.Next)); } 

这对我有用:

 DataGridCellInfo dataGridCellInfo = new DataGridCellInfo(dataGrid1.Items[sampleRowIndex], dataGrid1.Columns[sampleColumnIndex]); dataGrid1.SelectedCells.Clear(); dataGrid1.SelectedCells.Add(dataGridCellInfo); 

这将选择您想要关注的单元格。

DataGridCellInfo对象提供有关单元格和与单元格关联的数据项的信息。 当DataGrid控件获取单元格时,例如在CurrentCell或SelectedCells属性中,它用于代替对实际DataGridCell对象的引用。 点击此处了解更多信息。