Ajuste del estilo en <UserControl.Resources>
(suponiendo que el convertidor devuelve el color rojo)Edición mientras se mezcla convertidor MultiBinding y el gatillo en estilo
<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>
y el control:
<TextBox Name="FirstName" Text="{Binding FirstName}" Style="{StaticResource FieldToValidate}">
El resultado esperado es que el campo FirstName
para obtener el enfoque y el color de primer plano cambia a blanco cuando el convertidor de enlaces múltiples cambia el color de fondo a rojo pero, mientras el fondo del campo cambia a rojo, no obtiene el foco ni el nuevo color de primer plano.
Parece que el analizador XAML procesa el Trigger antes de el convertidor multibrazo de la propiedad.
¡Todas y cada una de las sugerencias son bienvenidas!
que había estado buscando una manera elegante de combinar el gatillo y la MultiBinding pero no encontré nada, así que recurrí al disparador basado en el color ... Hasta que llegaste ¡a lo largo! ¡Acabo de probar tu solución y funciona muy bien! No he probado reemplazando "Cola" con "cue", pero estoy bastante seguro de que funcionará ...;) Merci. – BlazingFrog