Я устанавливаю флажок для настраиваемого визуального стиля.
Я ищу способ избежать повторения одного и того же установщика для другого значения в триггере данных.
Как вы можете видеть разныевсе источники данных для разных значений имеют один и тот же установщик.
Есть идеи о том, как его взаимно объединить?
Я не могу найти никакой подсказки в SO или в Интернете, триггер мультиданных не работает с 'ИЛИ.
Вот мой код:
<Ellipse StrokeThickness="0"
Grid.Column="0"
Width="24"
Height="24"
Stroke="{TemplateBinding Background}">
<Ellipse.Style>
<Style TargetType="{x:Type Ellipse}">
<Style.Triggers>
<DataTrigger Binding="{Binding IsChecked, RelativeSource={RelativeSource TemplatedParent}}"
Value="{x:Null}">
<Setter Property="Fill">
<Setter.Value>
<MultiBinding Converter="{StaticResource ColorToBrush}">
<Binding Path="Background"
RelativeSource="{RelativeSource TemplatedParent}" />
<Binding Path="IsChecked"
RelativeSource="{RelativeSource TemplatedParent}" />
<Binding Path="IsMouseOver"
RelativeSource="{RelativeSource TemplatedParent}" />
<Binding Path="IsEnabled"
RelativeSource="{RelativeSource TemplatedParent}" />
</MultiBinding>
</Setter.Value>
</Setter>
</DataTrigger>
<DataTrigger Binding="{Binding IsChecked, RelativeSource={RelativeSource TemplatedParent}}"
Value="True">
<Setter Property="Fill">
<Setter.Value>
<MultiBinding Converter="{StaticResource ColorToBrush}">
<Binding Path="Background"
RelativeSource="{RelativeSource TemplatedParent}" />
<Binding Path="IsChecked"
RelativeSource="{RelativeSource TemplatedParent}" />
<Binding Path="IsMouseOver"
RelativeSource="{RelativeSource TemplatedParent}" />
<Binding Path="IsEnabled"
RelativeSource="{RelativeSource TemplatedParent}" />
</MultiBinding>
</Setter.Value>
</Setter>
</DataTrigger>
<DataTrigger Binding="{Binding IsChecked, RelativeSource={RelativeSource TemplatedParent}}"
Value="False">
<Setter Property="Fill">
<Setter.Value>
<MultiBinding Converter="{StaticResource ColorToBrush}">
<Binding Path="Background"
RelativeSource="{RelativeSource TemplatedParent}" />
<Binding Path="IsChecked"
RelativeSource="{RelativeSource TemplatedParent}" />
<Binding Path="IsMouseOver"
RelativeSource="{RelativeSource TemplatedParent}" />
<Binding Path="IsEnabled"
RelativeSource="{RelativeSource TemplatedParent}" />
</MultiBinding>
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</Ellipse.Style>
Спасибо =)