4

我有一个 WPF 应用程序,其中包含一个显示大量数据的标准 DataGrid。

现在我想添加按钮来选择下一个/第一/上/最后一行。

有没有办法告诉 DataGrid 为我更改选择?

我试着用

private void SelectNext_Click(object sender, RoutedEventArgs e)
{
  datagrid.MoveFocus(new TraversalRequest(FocusNavigationDirection.Next));
}

但它对我不起作用(不会更改所选项目,而是将单元格焦点设置为第一个项目)。

4

2 回答 2

8
private void SelectNext_Click(object sender, RoutedEventArgs e)
{
   if (dataGrid.Items.Count - 1 > datagrid.SelectedIndex)
   {
      datagrid.SelectedIndex++;
   }
}

private void SelectPrevious_Click(object sender, RoutedEventArgs e)
{
   if (dataGrid.SelectedIndex > 0)
   {
      datagrid.SelectedIndex--;
   }
}

private void SelectFirst_Click(object sender, RoutedEventArgs e)
{
   dataGrid.SelectedIndex = 0;
}

private void SelectLast_Click(object sender, RoutedEventArgs e)
{
   dataGrid.SelectedIndex = dataGrid.Items.Count - 1;
}
于 2012-06-26T10:28:05.693 回答
4

如果您通过数据绑定使用数据源填充数据网格,则可以这样做

“下一步”按钮示例

private void btnNext_Click(object sender, RoutedEventArgs e)
{
        ICollectionView view = CollectionViewSource.GetDefaultView(yourDataSource);
        view.MoveCurrentToNext();
}

该界面ICollectionView具有移动当前项目所需的所有方法

在 XAML 中还记得设置

<DataGrid .....     IsSynchronizedWithCurrentItem="True" >
于 2012-06-26T10:33:45.520 回答