WPF通过MultiDataTrigger触发器来动态更改表格(DataGrid)的样式

为了防止自己忘记,加深记忆。

     <ControlLibrary:DataGridEx x:Name="dgTable" HorizontalAlignment="Stretch"  
                                        Style="{DynamicResource DataGridStyle}" >
                <DataGrid.ColumnHeaderStyle>//更改表格的标题行样式
                    <Style TargetType="DataGridColumnHeader">
                        <Setter Property="HorizontalContentAlignment" Value="Center" ></Setter>//居中
                        <Setter Property="FontSize" Value="15"></Setter>//字体大小
                        <Setter Property="Foreground" Value="#FFEBF5F5"></Setter>
                        <Setter Property="Background" Value="#FF326DD4"></Setter>
                    </Style>
                </DataGrid.ColumnHeaderStyle>
                <DataGrid.Columns>

                    <DataGridTextColumn x:Name="columnHeader1" CanUserSort="False" Header="电池编号"   Binding="{Binding BatteryOrder}" ElementStyle="{StaticResource DataGridTextCenter}" Width="*" >

                    </DataGridTextColumn>
                    <DataGridTextColumn x:Name="columnHeader2" CanUserSort="False" Header="开始电压" Binding="{Binding StartVoltage}" ElementStyle="{StaticResource DataGridTextCenter}" Width="*"/>
                    <DataGridTextColumn x:Name="columnHeader3" CanUserSort="False" Header="终止电压" Binding="{Binding EndVoltage}" ElementStyle="{StaticResource DataGridTextCenter}" Width="*"/>
                    <DataGridTextColumn x:Name="columnHeader4" CanUserSort="False" Header="电池内阻/mΩ" Binding="{Binding BatteryResistance}" ElementStyle="{StaticResource DataGridTextCenter}" Width="*"/>
                    <!--<DataGridTextColumn x:Name="columnHeader5" CanUserSort="False" Header="实验结论" Binding="{Binding TestResult}" ElementStyle="{StaticResource DataGridTextCenter}"/>-->
                    <!--<DataGridTextColumn  Width="100" Header="维护方案" Binding="{Binding Maintenance}"/>-->

                    <DataGridTextColumn x:Name="columnHeader5" CanUserSort="False" CanUserReorder="False" Header="实验结论" ElementStyle="{StaticResource DataGridTextCenter}" Width="*" >

                        <DataGridTextColumn.Binding>
                            <MultiBinding Converter="{StaticResource ResourceKey=DataReportTestResultConverter}">
                                <Binding Path="StartVoltage"/>
                                <Binding Path="EndVoltage"/>
                                <Binding Path="dicLanguages"/>
                            </MultiBinding>
                        </DataGridTextColumn.Binding>
                    </DataGridTextColumn>

                    <DataGridTextColumn x:Name="columnHeader6" CanUserSort="False" CanUserReorder="False" Header="维护方案" ElementStyle="{StaticResource DataGridTextCenter}" Width="*">
                        <DataGridTextColumn.Binding>
                            <MultiBinding Converter="{StaticResource ResourceKey=DataReportMaintenanceConverter}">
                                <Binding Path="StartVoltage"/>
                                <Binding Path="EndVoltage"/>
                            </MultiBinding>
                        </DataGridTextColumn.Binding>
                    </DataGridTextColumn>
                </DataGrid.Columns>
                <DataGrid.CellStyle> //更改行的样式
                    <Style TargetType="{x:Type DataGridCell}">
                    //去掉单元格中间的竖线
                        <Style.Triggers>
                         <Trigger Property="IsSelected" Value="False">
                                <Setter Property="BorderThickness" Value="0"/>
                            </Trigger>
                            <Trigger Property="IsSelected" Value="True">
                                <Setter Property="BorderThickness" Value="0"/>
                            </Trigger>
                                //根据数据源中TestResult列的的内容来显示相应的颜色    正常电池就是Orange  严重就是Red
                            <MultiDataTrigger>
                                <MultiDataTrigger.Conditions>
                                    <Condition Binding="{Binding TestResult}" Value=" 正常电池"/>
                                </MultiDataTrigger.Conditions>
                                <MultiDataTrigger.Setters>
                                    <Setter Property="Background" Value="Orange"/>
                                </MultiDataTrigger.Setters>
                            </MultiDataTrigger>
                            <MultiDataTrigger>
                                <MultiDataTrigger.Conditions>
                                    <Condition Binding="{Binding TestResult}" Value="严重劣化电池"/>
                                </MultiDataTrigger.Conditions>
                                <MultiDataTrigger.Setters>
                                    <Setter Property="Background" Value="red"/>
                                </MultiDataTrigger.Setters>
                            </MultiDataTrigger>
                        </Style.Triggers>
                    </Style>
                </DataGrid.CellStyle>
            </ControlLibrary:DataGridEx>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值