Wpf XAML数据网格列边框

Wpf XAML数据网格列边框,wpf,xaml,datagrid,Wpf,Xaml,Datagrid,我有一个数据网格,有21列,其中第一列包含日期,其他20列是货币值,即数字的格式必须与2位十进制数字右对齐。从逻辑上讲,三列、三列和一列总是属于一起的,所以我想要实现的是网格线是不可见的,但是每三列的右侧都应该有一个垂直边框 有没有提示如何实现这一点?在XAML标记中明确定义所有列,并为每第三列定义一个CellStyle,用于设置DataGridCell的BorderBrush和BorderThickness。大概是这样的: <DataGrid GridLinesVisibility="N

我有一个数据网格,有21列,其中第一列包含日期,其他20列是货币值,即数字的格式必须与2位十进制数字右对齐。从逻辑上讲,三列、三列和一列总是属于一起的,所以我想要实现的是网格线是不可见的,但是每三列的右侧都应该有一个垂直边框


有没有提示如何实现这一点?

在XAML标记中明确定义所有列,并为每第三列定义一个CellStyle,用于设置DataGridCell的BorderBrush和BorderThickness。大概是这样的:

<DataGrid GridLinesVisibility="None" AutoGenerateColumns="False">
    <DataGrid.Columns>
        <DataGridTextColumn Binding="{Binding First}" />
        <DataGridTextColumn Binding="{Binding Second}" />
        <DataGridTextColumn Binding="{Binding Third}">
            <DataGridTextColumn.CellStyle>
                <Style TargetType="DataGridCell">
                    <Setter Property="BorderBrush" Value="Red" />
                    <Setter Property="BorderThickness" Value="0 0 1 0" />
                </Style>
            </DataGridTextColumn.CellStyle>
        </DataGridTextColumn>
    </DataGrid.Columns>
</DataGrid>

如果要保留默认样式(在我的示例中为MaterialDesign样式),请定义样式:

   <Style
            x:Key="MyDataGridCell"
            BasedOn="{StaticResource MaterialDesignDataGridCell}"
            TargetType="DataGridCell">
            <Setter Property="BorderBrush" Value="Silver" />
            <Setter Property="BorderThickness" Value="1" />
        </Style>

然后将样式应用于数据网格:

 <DataGrid  CellStyle="{StaticResource MyDataGridCell}"
        GridLinesVisibility="None"  >
                <DataGrid.Columns>
                    <DataGridTextColumn
                        x:Name="Column1"
                        MinWidth="120"
                        Binding="{Binding Status}"
                        CanUserResize="False" /></DataGrid>

谢谢你mm8。完美的作品!:)