Как добавить новую строку для клавиши TAB в WPF dataGrid - PullRequest
3 голосов
/ 04 мая 2011

Я хочу добавить новую строку в мою сетку данных, когда я нажимаю клавишу «TAB» в последней ячейке сетки данных.

Я использую шаблон MVVM для этого.Я пришел с решением, я назначил клавишу Tab для привязки ввода сетки данных:

    <DataGrid.InputBindings>
       <KeyBinding Command="{Binding Path=InsertNewLineCommand}" Key="Tab"></KeyBinding>
   </DataGrid.InputBindings>

и добавил следующий код для InsertNewLineCommand:

private void ExecuteInsertNewLineCommand()
    {
        //Checked is SelectedCell[0] at last cell of the datagrid
        {
            InsertNewLine();
        }
    }

Но проблемаВКЛЮЧЕНА, ДОБАВЛЯЕТСЯ КЛАВИАТУРА = 'TAB' МОЯ НОРМАЛЬНАЯ ОСОБЕННОСТЬ TAB НА ОТКЛЮЧЕНИЯХ СЕТКИ (ПЕРЕМЕЩЕНИЕ К СЛЕДУЮЩЕЙ КЛЕТОКЕ И ТАК ...)

1 Ответ

1 голос
/ 28 марта 2012

Просто определите, находитесь ли вы в последнем столбце, затем выполните команду.

Я использую PreviewKeyDown, чтобы я мог проверить логику, но вы можете поместить это в свой метод executeCommand. В любом случае, это должно помочь вам начать:

<DataGrid PreviewKeyDown="DataGrid_PreviewKeyDown" SelectionUnit="Cell" ....

private void DataGrid_PreviewKeyDown(object sender, KeyEventArgs e)
{
    if (!Keyboard.IsKeyDown(Key.Tab)) return;
    var dataGrid = (DataGrid) sender;

    var current = dataGrid.Columns.IndexOf(dataGrid.CurrentColumn);
    var last = dataGrid.Columns.Count - 1;

    if (current == last)
         ExecuteInsertNewLineCommand();

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...