Sto provando a fare qualcosa di molto semplice. Ho una proprietà ToggleButton.IsChecked legata a un bool. Voglio che lo sfondo cambi tra rosso (falso) e verde (vero). Ma per qualche motivo sembra passare da rosso a senza sfondo. Ho usato un convertitore per verificare se ricevo le notifiche appropriate dalla fonte e io lo sono, quindi non sono sicuro del motivo per cui un trigger (falso/rosso) funziona e l'altro (vero/verde) non funziona. Vorrebbe anche sentire come le persone eseguono il debug di questo tipo di problemi. Grazie!WPF Debug dei datatrigger?
Ecco il codice.
<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>
Aggiornamento: ho cambiato il ToggleButton ad una casella di controllo e funziona. Non ho idea del perché ...
Grazie per il suggerimento. L'ho provato ma senza fortuna. Non capisco perché un grilletto sembra sparare e non l'altro. – Sharun
Prova a mettere il tuo convertitore all'interno del datatrigger stesso e restituire un bool immediato da esso, piuttosto che il Nullable restituito ischecked. –
Assicurati inoltre che IsThreeState sia falso. –