Я использую 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}">