【发布时间】:2020-01-15 10:42:33
【问题描述】:
我有一个 DataGrid,并且集合中的对象有一个属性 'isvalid' 当一个项目无效(isvalid == false)时,我使用数据触发器将行前景色设置为红色。
这可行,但是当我选择无效行时,数据网格行上的选择样式会覆盖我设置的前景色,并且不再是红色(它只是显示为默认主题前景色)。
如何同时覆盖所选行的前景色样式?
我想把这个结合起来
<Trigger Property="IsSelected" Value="true">
<Setter Property="Foreground" Value="Red"></Setter>
</Trigger>
满足以下条件
<DataGrid.RowStyle>
<Style TargetType="DataGridRow" BasedOn="{StaticResource MetroDataGridRow}">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=isvalid}" Value="false">
<Setter Property="Foreground" Value="Red"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
无论是否被选中,一行都应该具有红色的前景色(但仅当 isvalid == false 时)
编辑:我尝试了this post的解决方案
<MultiDataTrigger.Conditions>
<Condition Property="IsSelected" Value="True"/>
<Condition Binding="{Binding Path=isvalid}" Value="false" ></Condition>
</MultiDataTrigger.Conditions>
但我明白了
System.InvalidOperationException - 必须具有非空值 '绑定'。
【问题讨论】:
标签: wpf xaml mahapps.metro