Я использую datagrid Microsoft WPF. Я заметил странное поведение с WPF datagrid DataGridTemplateColumn. Когда вы используете шаблонColumn в сетке, а столбец шаблона содержит некоторые элементы управления, когда вы вставляете вкладку из предыдущего столбца, фокус автоматически не присваивается первому элементу, объявленному в столбце шаблона. Foucs инициализируется на границе столбца шаблона, и когда мы вставляем один раз, акцент переходит в первый столбец. Любой обходной путь для этой проблемы. Как я могу настроить фокус, чтобы перейти к первому элементу в столбце шаблона datagrid, когда я отключен.
Проблема с WPF Datagrid -DataGridTemplateColumn
Ответ 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"/>
Ответ 3
Существует решение, использующее статический класс и одно изменение для Xaml для элемента управления, которым вы хотите сфокусироваться. " WPF DataGrid: вкладка из ячейки в ячейку не устанавливает фокус на управление"
Ответ 4
Я узнал ссылку в WPF datagrid codeplex обсуждения http://www.codeplex.com/wpf/Thread/View.aspx?ThreadId=35540
Благодаря vincent sibal