关注数据网格中的问题

本文关键字:问题 网格 数据网 数据 | 更新日期: 2023-09-27 18:05:26

我正在开发一个会计应用程序,我的用户根本不想触摸鼠标,因为这会降低他们的速度…所以聚焦在应用中是非常重要的。我使用数据网格来显示一些数据,他们想要的是一旦窗口加载和数据网格中填写的数据,他们应该能够通过使用箭头键在数据网格中移动,并通过按Enter调用命令…I。e、键盘焦点应该在第一行或第一个单元格。我已经尝试了几乎一切,但似乎没有工作在这里,现在他们必须按TAB一次进入数据网格,即使最后一行显示为在窗口中选择,我的意思是最后一行被选中,但为了在数据网格中上下移动,他们必须按TAB一次....我不明白这里有什么问题……以下是我在Windows加载事件中使用的代码,用于设置UI:

dataGrid1.SelectedIndex = dataGrid1.Items.Count -1;
dataGrid1.CurrentItem = dataGrid1.SelectedItem;
dataGrid1.Focus();
dataGrid1.ScrollIntoView(dataGrid1.CurrentItem);

关注数据网格中的问题

设置SelectedIndex="0"DataGrid,订阅Loaded事件。在事件处理程序中,通过调用MoveFocus

将焦点移动到第一行/单元格

Xaml

<DataGrid ...
          SelectedIndex="0"
          Loaded="DataGrid_Loaded">

事件处理程序背后的代码

private void DataGrid_Loaded(object sender, RoutedEventArgs e)
{
    DataGrid dataGrid = sender as DataGrid;
    dataGrid.MoveFocus(new TraversalRequest(FocusNavigationDirection.Next));
}

试试这个

//set current cell which you want to edit
dataGrid1.CurrentCell = new DataGridCellInfo(dataGrid1.Items[0], dataGrid1.Columns[0]);
//start editing it
dataGrid1.BeginEdit();

我在DataGrid的加载事件中执行这段代码并且工作良好