Перезаписывают несколько Datatriggers - PullRequest
0 голосов
/ 24 октября 2018
<Style.Triggers>
        <DataTrigger Binding="{Binding Result.IsRejected}" Value="True">
            <Setter Property="Foreground" Value="Green"/>
        </DataTrigger>
        <DataTrigger Binding="{Binding Result.RilibakViolation}" Value="True">
            <Setter Property="Foreground" Value="Red"/>
        </DataTrigger>
        <DataTrigger Binding="{Binding Result.RilibakViolation}" Value="False">
            <Setter Property="Foreground" Value="{DynamicResource ControlsForegroundColor}"/>
        </DataTrigger>
        <DataTrigger Binding="{Binding Result.IsViolated}" Value="True">
            <Setter Property="Foreground" Value="Red"/>
        </DataTrigger>
        <DataTrigger Binding="{Binding Result.IsViolated}" Value="False">
            <Setter Property="Foreground" Value="{DynamicResource ControlsForegroundColor}"/>
        </DataTrigger>
        <DataTrigger Binding="{Binding Result.ResultIncluded}" Value="False">
            <Setter Property="Foreground" Value="IndianRed"/>
        </DataTrigger>

    </Style.Triggers>

У меня есть этот код, где я пытался изменить цвет переднего плана в соответствии с различными свойствами этого объекта результата.Моя проблема в том, что только последние 3 работы и IsRejected или RilibakViolation не работают.Пример: даже если первое значение истинно, оно не будет отображаться зеленым цветом.Есть ли другой подход к этому коду, чтобы он работал во всех этих случаях?

1 Ответ

0 голосов
/ 24 октября 2018

Хорошим способом будет создание MultiConverter и передача всех необходимых свойств (IsRejected, RilibakViolation, IsViolated и т. Д.).Конвертер получит параметры и затем решит, какой цвет вернуть.

Таким образом, каждый раз, когда свойство в модели изменяется, конвертер активируется и соответственно изменяется передний план.

...