1

私はDataGrids共通のイベントハンドラーを使用してすべてをいくつか持っています: DataGrid_PreviewKeyDown.

目的は、タブ キー イベントを探し、ユーザーが最後の行の最後の編集セルからタブを離したときに新しい行を挿入することです。グリッドにはいくつかの列があり、編集できるのは 2 つだけです。

現在、私が持っているものを以下に示します。を使用していますgrid.CurrentCell.Column.Header.ToString() == "myColumnHeaderName"。他のグリッドにはその列がないため、myColumnHeaderName は 1 つのグリッドに対してのみ機能します。

private void DataGrid_PreviewKeyDown( object sender, KeyEventArgs e )
{
    if ( e.Key == Key.Tab && Keyboard.Modifiers == ModifierKeys.None )
    {
        DataGrid grid = sender as DataGrid;
        if ( grid.SelectedIndex == grid.Items.Count - 1 ) // last row
        {
            if ( grid.CurrentCell.Column.Header.ToString() == "myColumnName" )
            {
                grid.CommitEdit();
                AppendToGrid( grid );
            }
        }
    }
}
4

1 に答える 1