Установка стиля в
(предполагается, что преобразователь возвращает красный цвет)
<Style x:Key="FieldToValidate" TargetType="{x:Type TextBox}">
<Setter Property="Background">
<Setter.Value>
<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>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="Background" Value="Red">
<Setter Property="FocusManager.FocusedElement" Value="{Binding RelativeSource={RelativeSource self}}" />
<Setter Property="Foreground" Value="White" />
</Trigger>
</Style.Triggers>
</Style>
и элемент управления:
<TextBox Name="FirstName" Text="{Binding FirstName}" Style="{StaticResource FieldToValidate}">
Ожидаемый результат - для поля FirstName
фокус и цвет переднего плана изменится на белый, когда преобразователь MultiBinding меняет цвет фона на красный, но, хотя фон поля меняется на красный, он не получает ни фокуса, ни нового цвета переднего плана.
Похоже, что синтаксический анализатор XAML обрабатывает триггер до конвертер MultiBinding средства задания свойств.
Любые предложения приветствуются!