2

我正在处理 ac# WPF 项目,我正在使用样式触发器根据其中一个单元格值设置每一行的背景颜色。

下面是我的风格触发器。

<Window.Resources>
        <Style TargetType="DataGridRow">
            <Style.Triggers>
                <DataTrigger Binding="{Binding Highest Alarm Level}" Value="Critical">
                    <Setter Property="Background" Value="Red" />
                </DataTrigger>
                <DataTrigger Binding="{Binding Highest Alarm Level}" Value="Medium">
                    <Setter Property="Background" Value="Orange" />
                </DataTrigger>
                <DataTrigger Binding="{Binding Highest Alarm Level}" Value="Warning">
                    <Setter Property="Background" Value="Yellow" />
                </DataTrigger>
                <DataTrigger Binding="{Binding Highest Alarm Level}" Value="Info">
                    <Setter Property="Background" Value="White" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Window.Resources>

我需要能够做的是在某些情况下我不希望使用这种样式,所以我所追求的是,​​如果在 C# 代码中某个条件变为真,我想禁用所有不使用上面完成的样式,即关闭所有样式,因此未设置行的背景颜色。

4

1 回答 1

2

为您的自定义添加密钥DataGridRow Style

<Style TargetType="DataGridRow" x:Key="MyRowStyle">
    <!-- Define Triggers -->
</Style>

然后你只需要在默认样式和自定义样式之间切换。

如果设置Stylenull,则表示Style将应用默认值

dataGrid.RowStyle = _boolCondition ? this.FindResource("MyRowStyle") as Style : null;
于 2013-08-17T14:48:32.827 回答