Tengo un par de cuadros de texto y una colección de botones de opción en WPF. Quiero utilizar el disparador para configurar la propiedad IsChecked de un solo botón de radio que tiene un nombre si los cuadros de texto se enfocan. Reviso algunos ejemplos pero no pude encontrar lo que estaba buscando. Recuerde, estamos usando el patrón MVVM y no hay código detrás.Disparador con el nombre de destino
Probé los siguientes códigos y tienen este error de compilación:
propiedad TargetName no se puede ajustar en un organismo Estilo
<UserControl.Resources>
<Style x:Name="myTest" TargetType="TextBox">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="RadioButton.IsChecked" Value="True" TargetName="myRadioButton"></Setter>
</Trigger>
</Style.Triggers>
</Style>
</UserControl.Resources>
He leído otros puestos y DataTrigger solucionar el problema.
<Style x:Name="myTest2" TargetType="RadioButton" >
<Style.Triggers>
<DataTrigger Binding="{Binding IsFocused, ElementName=myTextBox}" Value="True">
<Setter Property="IsChecked" Value="True" ></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
Sería útil que nos pudiera mostrar al menos el código XAML;) –
De MSDN 'Puede establecer esta propiedad en el nombre de cualquier elemento dentro del alcance de donde la colección colocador (la colección que este setter es parte de) se aplica. Normalmente, este es un elemento con nombre que se encuentra dentro de la plantilla que contiene este setter. TargetName se usa principalmente en plantillas de control y no simplemente en estilos como el que está intentando usar. –
¿Alguien más tiene constantemente este tipo de problema en la intersección de los desencadenadores, estilos y plantillas de WPF? No se puede usar TargetName en un clasificador de estilos. La colección Triggers solo puede tener EventTriggers, a menos que esté en un estilo. Vaya, ese control solo funciona en una plantilla de control, no en una plantilla de datos ... – user1454265