Я думаю, что кисть Red
, указанная в триггере, и кисть Red
, возвращаемая преобразователем, не считаются равными (потому что это разные экземпляры), поэтому триггер никогда не выполняется. Во всяком случае, не очень хорошая идея полагаться на цвет фона, чтобы вызвать что-то ...
Вам следует изменить свой конвертер, чтобы он возвращал значение true при возникновении ошибки, и использовать его следующим образом:
<Style x:Key="FieldToValidate" TargetType="{x:Type TextBox}">
<Style.Triggers>
<DataTrigger Value="True">
<DataTrigger.Binding>
<MultiBinding Converter="{StaticResource VisualQueueOnErrorConverter}">
<Binding RelativeSource="{RelativeSource self}" Path="Name" />
<Binding RelativeSource="{RelativeSource AncestorType={x:Type DockPanel}}" Path="DataContext.ErrorFieldName" UpdateSourceTrigger="PropertyChanged" Mode="TwoWay" />
</MultiBinding>
</DataTrigger.Binding>
<Setter Property="FocusManager.FocusedElement" Value="{Binding RelativeSource={RelativeSource self}}" />
<Setter Property="Background" Value="Red" />
<Setter Property="Foreground" Value="White" />
</DataTrigger>
</Style.Triggers>
</Style>
Кроме того, в названии вашего конвертера вы, вероятно, имели в виду «visual cue », а не « queue» ;)