2014-09-16 3 views
0

В настоящее время у меня есть datagrid с кучей столбцов. Все столбцы имеют следующий стильПопытка упростить стиль в DataGrid

<DataGridTextColumn.HeaderStyle> 
    <Style TargetType="DataGridColumnHeader" BasedOn="{StaticResource MetroDataGridColumnHeader}"> 
     <Setter Property="HorizontalContentAlignment" Value="Right"/> 
    </Style> 
</DataGridTextColumn.HeaderStyle> 
<DataGridTextColumn.ElementStyle> 
    <Style TargetType="{x:Type TextBlock}"> 
     <Setter Property="HorizontalAlignment" Value="Right"/> 
    </Style> 
</DataGridTextColumn.ElementStyle> 

Вместо того чтобы повторять это в каждом DataGridTextColumn, как я мог присвоить это все столбцы в более простой способ?

ответ

1

используйте стили DataGridCell и DataGridColumnHeader, а затем просто установите этот стиль в стиле DataGrid.

<Style TargetType="DataGridCell" x:Key="StyledCells"> 
    <!-- Setter Details --> 
</Style> 

<Style TargetType="DataGridColumnHeader" x:Key="StyledColumnHeader"> 
    <!-- Setter Details --> 
</Style> 

<Style TargetType="DataGrid"> 
    <Setter Property="ColumnHeaderStyle" Value="{DynamicResource StyledColumnHeader}" /> 
    <Setter Property="CellStyle" Value="{DynamicResource StyledCells}" /> 
</Style> 
+0

Не работает вообще. Как бы вы применили мои стили в этом случае? Редактировать: заставить его работать, применяя свойства BasedOn! – user3692104

+0

У меня есть один и тот же стиль. Как бы я это сделал, снова хотел бы сделать это, используя ресурс. – user3692104

+0

Определите отдельный стиль DataGridCell и установите CellStyle для DataGridTextColumn в качестве другого стиля. Это будет эффективно отменять стиль для этого столбца. –

Смежные вопросы