Próbuję zrobić coś bardzo prostego. Mam właściwość ToggleButton.IsChecked powiązaną z boolem. Chcę, aby tło przełączało się między czerwonym (fałsz) i zielonym (prawda). Ale z jakiegoś powodu wydaje się, że przełącza się między czerwonym i bez tła. Użyłem konwertera, aby sprawdzić, czy otrzymuję odpowiednie powiadomienia od źródła i jestem, więc nie jestem pewien, dlaczego jeden wyzwalacz (fałszywy/czerwony) działa, a drugi (prawda/zielony) nie robi. Chciałbym również usłyszeć, jak ludzie debugują tego rodzaju problemy. Dzięki!WPF Debugowanie datatriggers?
Oto kod.
<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>
Aktualizacja: Zmieniłem ToggleButton do wyboru i to działa. Nie mam pojęcia, dlaczego ...
Dzięki za sugestię. Próbowałem, ale bez powodzenia. Nie rozumiem, dlaczego jeden spust wydaje się strzelać, a nie drugi. – Sharun
Spróbuj umieścić konwerter wewnątrz samego datatriggera i zwróć z niego prosty sygnał, a nie Nullable, który jest zaznaczony. –
Upewnij się także, że IsThreeState ma wartość false. –