我想知道为什么这不起作用:
<DataGrid AlternationCount="2"...
<DataGrid.RowStyle>
<Style TargetType="{x:Type DataGridRow}">
<Style.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Binding="{Binding AlternationIndex, RelativeSource={RelativeSource Self}}" Value="0" />
<Condition Binding="{Binding IsTicket}" Value="False" />
</MultiTrigger.Conditions>
<MultiTrigger.Setters>
<Setter Property="Background" Value="White" />
</MultiTrigger.Setters>
</MultiTrigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
此代码抛出 InvalidOperationException“'Property' 必须具有非空值”。IsTiket 是 Datagrid 绑定到的 Datacontext 的属性
此代码有效,但我需要 MultiTrigger:
<DataGrid.RowStyle>
<Style TargetType="{x:Type DataGridRow}">
<Style.Triggers>
<Trigger Property="AlternationIndex" Value="0">
<Setter Property="Background" Value="White" />
</Trigger>
<DataTrigger Binding="{Binding IsTicket}" Value="True">
<DataTrigger.Setters>
<Setter Property="Background" Value="Gold" />
</DataTrigger.Setters>
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
解决方案:语法错误,我必须使用 MultiDataTrigger:
<DataGrid.RowStyle>
<Style TargetType="{x:Type DataGridRow}">
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding AlternationIndex, RelativeSource={RelativeSource Self}}" Value="0" />
<Condition Binding="{Binding IsTicket}" Value="False" />
</MultiDataTrigger.Conditions>
<MultiDataTrigger.Setters>
<Setter Property="Background" Value="White" />
</MultiDataTrigger.Setters>
</MultiDataTrigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>