Estoy tratando de hacer algo muy simple. Tengo una propiedad ToggleButton.IsChecked vinculada a un bool. Quiero que el fondo cambie entre rojo (falso) y verde (verdadero). Pero por alguna razón parece estar cambiando entre rojo y sin fondo. Utilicé un convertidor para comprobar si recibo las notificaciones adecuadas de la fuente y lo estoy, por lo que no estoy seguro de por qué funciona un disparador (falso/rojo) y el otro (verdadero/verde) no funciona. También me gustaría escuchar cómo la gente depura este tipo de problemas. ¡Gracias!WPF Debugging datatriggers?
Aquí está el código.
<DataTemplate x:Name"Flipper">
<StackPanel>
...
<ToggleButton IsChecked="{Binding Path=BoolValue,
Converter={StaticResource converter}}"
Name="onoff" >
</ToggleButton>
...
<StackPanel>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding ElementName=onoff,Path=IsChecked}"
Value="True">
<Setter TargetName="onoff" Property="Background" Value="Green"/>
</DataTrigger>
<DataTrigger Binding="{Binding ElementName=onoff,Path=IsChecked}"
Value="False">
<Setter TargetName="onoff" Property="Background" Value="Red"/>
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
actualización: He cambiado la togglebutton a una casilla de verificación y funciona. No tengo idea de por qué ...
Gracias por la sugerencia. Lo intenté pero no tuve suerte. No entiendo por qué un disparador parece estar disparando y no el otro. – Sharun
Intenta poner tu convertidor dentro del datatrigger y devuelve un bool directo de él, en lugar del Nullable que se revisa. –
También asegúrese de que IsThreeState sea falso. –