我正在开发一个 C# 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# 代码中某个条件变为 true,我想禁用上面完成的所有样式都不会被使用,即所有样式都被关闭,因此不会设置行的背景颜色。
最佳答案
向自定义DataGridRow
添加一个键Style
<Style TargetType="DataGridRow" x:Key="MyRowStyle">
<!-- Define Triggers -->
</Style>
然后您只需在默认样式和自定义样式之间切换即可。
如果您将 Style
设置为 null
,则意味着将应用默认的 Style
dataGrid.RowStyle = _boolCondition ? this.FindResource("MyRowStyle") as Style : null;
关于c# - 以编程方式禁用在 xaml 中创建的样式触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18283233/