如何在DataGrid中对齐列? (一种理性的方式)

时间:2014-06-06 09:13:20

标签: wpf datagrid styles text-alignment

我使用WPF(C#)。我使用DataGrid。 我希望第一列与中心对齐,其他列右对齐。

我一般都有风格:

<Style x:Key="TextInCellCenter" TargetType="{x:Type TextBlock}" >
     <Setter Property="HorizontalAlignment" Value="Center"/>
</Style>

<Style TargetType="{x:Type DataGridCell}">       
     <Setter Property="HorizontalAlignment" Value="Right"/>
</Style>

的DataGrid:

<DataGrid Name="DG1">
  <DataGrid.Columns>
    <DataGridTextColumn ElementStyle="{StaticResource TextInCellCenter}" Binding="{Binding Path=Name}" />
    <DataGridTextColumn Binding="{Binding Path=Number}" />
    <DataGridTextColumn Binding="{Binding Path=Number}" />
    ....
    <DataGridTextColumn Binding="{Binding Path=Number}" />
    <DataGridTextColumn Binding="{Binding Path=Number}" />
  </DataGrid.Columns>
</DataGrid>

<DataGrid Name="DG2">
  <DataGrid.Columns>
    <DataGridTextColumn ElementStyle="{StaticResource TextInCellCenter}" Binding="{Binding Path=Name}" />
    <DataGridTextColumn Binding="{Binding Path=Number}" />
    <DataGridTextColumn Binding="{Binding Path=Number}" />
    ...
    <DataGridTextColumn Binding="{Binding Path=Number}" />
    <DataGridTextColumn Binding="{Binding Path=Number}" />
  </DataGrid.Columns>
</DataGrid>
....

所有列都是右对齐

请告诉我,如何更改第一栏中心文字对齐

P.S。如何以理性的方式做到这一点?我有很多类似的表格。

1 个答案:

答案 0 :(得分:2)

您可以更改DataGridCell的{​​{1}}并将ElementStyle更改为TextBlockTextAlignment而不是更改Right的样式,而是应用它按列列出

Center

或在<DataGridTextColumn Binding="{Binding Path=Number}" > <DataGridTextColumn.ElementStyle> <Style TargetType="{x:Type TextBlock}"> <Setter Property="TextAlignment" Value="Right"/> </Style> </DataGridTextColumn.ElementStyle> </DataGridTextColumn> 中创建此Style,以便您可以申请多一列

DataGrid.Resources