试图简化DataGrid中的样式

时间:2014-09-16 12:39:49

标签: c# wpf 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 个答案:

答案 0 :(得分: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>