Я использую WPF4.0 DataGrid. При двойном нажатии на ячейку в новой строке все работает отлично , если я не добавил стиль ячейки в этот столбец. Например, у меня есть числовой столбец, где я хочу, чтобы данные были выровнены вправо, так что xaml выглядит так:
<DataGridTextColumn Binding="{Binding Path=ImpaId}"
CellStyle="{StaticResource CellRightAlign}">
<DataGridTextColumn.Header>
<TextBlock Style="{StaticResource DataGridHeader}">Impa</TextBlock>
</DataGridTextColumn.Header>
</DataGridTextColumn>
Если стиль в общем ресурсе просто:
<Style x:Key="CellRightAlign">
<Setter Property="Control.HorizontalAlignment"
Value="Right" />
</Style>
Результируемая выбираемая область в новой строке отображается на изображении как эта маленькая синяя область. Это очень маленькая цель для пользователя, которая попадает, и это самый вероятный столбец, с которым они захотят начать новая строка.
Если я удалю CellStyle, область будет работать по желанию, но, конечно, я потеряю правильное выравнивание.
Кто-нибудь знает, как добиться того и другого?
Вещи, которые я пробовал
- Настройка TargetNullValue на привязку к формату с некоторой шириной. Это работает с существующими строками, но не влияет на новую строку.
- Установка MinWidth в столбце, это не повлияло на ширину выбранной строки область.
Вещь, которая сработала:
Используя информацию из ответа @AngelWPF, я смог перейти от использования CellStyle к использованию ElementStyle следующим образом:
<DataGridTextColumn Binding="{Binding Path=ImpaId}"
CellStyle="{StaticResource CellRightAlign}">
Стала
<DataGridTextColumn Binding="{Binding Path=ImpaId}"
ElementStyle="{StaticResource CellRightAlign}">