Установка стиля в <UserControl.Resources>
(при условии, что преобразователь возвращает цвет Красный)
<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 для настройки свойств.
Любые предложения приветствуются!