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