DataTrigger не стреляет
У меня есть следующий xaml:
<DockPanel>
<DockPanel>
<CheckBox IsChecked="{Binding Path=Test}" />
<CheckBox IsChecked="{Binding Path=Test}" />
</DockPanel>
<DockPanel DockPanel.Dock="Left" Width="10" Background="Blue">
<DockPanel.Style>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding Path=Test}" Value="True">
<Setter Property="DockPanel.Background" Value="Yellow" />
</DataTrigger>
</Style.Triggers>
</Style>
</DockPanel.Style>
</DockPanel>
</DockPanel>
Теперь - 2 флажка связаны правильно - проверка одного проверяет другой - но сборщик данных не запускается вообще.
Что я делаю неправильно?
1 ответ
Решение
Проблема здесь - Приоритет значения свойства.
В настоящее время вы устанавливаете синий цвет фона непосредственно на панели DockPanel. Это явное свойство переопределит любое значение, установленное триггером.
Вместо этого вы должны установить исходный "Фон" как сеттер в стиле.
<DockPanel DockPanel.Dock="Left" Width="10">
<DockPanel.Style>
<Style>
<Setter Property="DockPanel.Background" Value="Blue" />
<Style.Triggers>
<DataTrigger Binding="{Binding Path=Test}" Value="True">
<Setter Property="DockPanel.Background" Value="Yellow" />
</DataTrigger>
</Style.Triggers>
</Style>
</DockPanel.Style>
</DockPanel></DockPanel>