Это определенно не тот код, который вы используете, здесь нет свойства ForeGround
, и теоретически (без этой ошибки) это будет работать, и фон изменится, если сработает триггер.
Еще один простой пример, который работает:
<CheckBox Name="cb" Content="Red BG"/>
<TextBox>
<TextBox.Style>
<Style TargetType="{x:Type TextBox}" BasedOn="{StaticResource {x:Type TextBox}}">
<Style.Triggers>
<DataTrigger Binding="{Binding IsChecked, ElementName=cb}" Value="True">
<Setter Property="Background" Value="Red"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>
Следующее, однако, будет не работать:
<CheckBox Name="cb" Content="Red BG"/>
<TextBox Background="Green">
<TextBox.Style>
<Style TargetType="{x:Type TextBox}" BasedOn="{StaticResource {x:Type TextBox}}">
<Style.Triggers>
<DataTrigger Binding="{Binding IsChecked, ElementName=cb}" Value="True">
<Setter Property="Background" Value="Red"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>
Обратите внимание, что сначала в объявлении был задан зеленый фон, это прямое значение переопределит стиль из-за приоритета значения свойства зависимости , если вы хотите установить начальное значение, это нужно сделать в сеттер в стиле (вне любого триггера). Я подозреваю, что это может быть вашей проблемой.