Подтвердить что ты не робот

Проблема с WPF Datagrid -DataGridTemplateColumn

Я использую datagrid Microsoft WPF. Я заметил странное поведение с WPF datagrid DataGridTemplateColumn. Когда вы используете шаблонColumn в сетке, а столбец шаблона содержит некоторые элементы управления, когда вы вставляете вкладку из предыдущего столбца, фокус автоматически не присваивается первому элементу, объявленному в столбце шаблона. Foucs инициализируется на границе столбца шаблона, и когда мы вставляем один раз, акцент переходит в первый столбец. Любой обходной путь для этой проблемы. Как я могу настроить фокус, чтобы перейти к первому элементу в столбце шаблона datagrid, когда я отключен.

4b9b3361

Ответ 1

Я избавился от этой проблемы, обработав событие PrepareCellForEdit сетки. Вот код

void HODataGrid_PreparingCellForEdit(object sender, DataGridPreparingCellForEditEventArgs e)
{
      UIElement inputElement;
      ///
      /// Texbox is the first control in my template column
      ///
      inputElement = HODataGridHelper.GetVisualChild<TextBox>(e.EditingElement);
      if (inputElement != null)
      {
           Keyboard.Focus(inputElement);
      }
}

Ответ 2

Мы решили эту проблему, изменив стиль в DataGridCell:

<Style x:Key="DataGridCellStyle" TargetType="{x:Type DataGridCell}">
    <Setter Property="IsTabStop" Value="False"/>