J'essaie de faire quelque chose de très simple. J'ai une propriété ToggleButton.IsChecked liée à un booléen. Je veux que l'arrière-plan bascule entre le rouge (faux) et le vert (vrai). Mais pour une raison quelconque, il semble être basculer entre le rouge et aucun fond. J'ai utilisé un convertisseur pour vérifier si je reçois des notifications appropriées de la source et je suis, donc je ne sais pas pourquoi un déclencheur (faux/rouge) fonctionne et l'autre (vrai/vert) ne fonctionne pas. J'aimerais également savoir comment les gens déboguent ce genre de problèmes. Merci!WPF Débogage des Datatriggers?
Voici le code.
<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>
Mise à jour: J'ai changé le togglebutton à une case à cocher et il fonctionne. Aucune idée pourquoi ...
Merci pour la suggestion. Je l'ai essayé mais pas de chance. Je ne comprends pas pourquoi un déclencheur semble tirer et pas l'autre. – Sharun
Essayez de placer votre convertisseur à l'intérieur du datatrigger lui-même et de lui renvoyer un booléen direct, plutôt que le nul qui renvoie les retours ischecked. –
Assurez-vous également que IsThreeState est false. –