У меня есть сетка данных, привязанная к коллекции. Я применил следующий стиль строки к сетке данных:
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Style.Triggers>
<DataTrigger Binding="{Binding Status}" Value="Down">
<Setter Property="Background" Value="Red" />
<Setter Property="Foreground" Value="White" />
</DataTrigger>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding Status}" Value="Down" />
<Condition Binding="{Binding RelativeSource={RelativeSource Mode=Self}, Path=IsSelected}" Value="True" />
</MultiDataTrigger.Conditions>
<Setter Property="Background" Value="Green" />
<Setter Property="Foreground" Value="White" />
</MultiDataTrigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
Источник данных работает, но не мультидатчик. Неудачное условие - это то, что проверяет наличие IsSelected в сетке данных, являющейся истинным. Если я изменю его так, чтобы он использовал конвертер значений, который всегда возвращает true, я буду видеть строки зеленым цветом.
По сути, я хочу, чтобы строки, чьи объекты данных имели свойство status, установленное на down, были красного цвета, но когда я выбираю эти строки, они должны быть зелеными (или фактически затемненными) вместо синего по умолчанию.