4

多くのデータを表示する標準の DataGrid を含む WPF アプリケーションがあります。

次に、次/最初/前/最後の行を選択するボタンを追加したいと思います。

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 に答える