How can I provide multiple conditions for data trigger in WPF?

Use MultiDataTrigger type <Style TargetType=”ListBoxItem”> <Style.Triggers> <DataTrigger Binding=”{Binding Path=State}” Value=”WA”> <Setter Property=”Foreground” Value=”Red” /> </DataTrigger> <MultiDataTrigger> <MultiDataTrigger.Conditions> <Condition Binding=”{Binding Path=Name}” Value=”Portland” /> <Condition Binding=”{Binding Path=State}” Value=”OR” /> </MultiDataTrigger.Conditions> <Setter Property=”Background” Value=”Cyan” /> </MultiDataTrigger> </Style.Triggers> </Style>

DataTrigger not firing

The issue here is Property Value Precedence. You are currently setting the Background to blue directly on the DockPanel. This explicit property will override any value set by the trigger. Instead, you must set the original “Background” as a setter in the style. <DockPanel DockPanel.Dock=”Left” Width=”10″> <DockPanel.Style> <Style> <Setter Property=”DockPanel.Background” Value=”Blue” /> <Style.Triggers> <DataTrigger Binding=”{Binding … Read more

How to get DataTemplate.DataTrigger to check for greater than or less than?

You could create an IValueConverter, which converts an integer to a boolean based on the CutOff. Then use DataTrigger.Value of True (or False, depending on what you are returning). WPF DataTriggers are strictly equality comparers if I remember correctly. So something similar to: public class CutoffConverter : IValueConverter { public object Convert(object value, Type targetType, … Read more

DataTrigger where value is NOT null?

This is a bit of a cheat but I just set a default style and then overrode it using a DataTrigger if the value is null… <Style> <!– Highlight for Reviewed (Default) –> <Setter Property=”Control.Background” Value=”PaleGreen” /> <Style.Triggers> <!– Highlight for Not Reviewed –> <DataTrigger Binding=”{Binding Path=REVIEWEDBY}” Value=”{x:Null}”> <Setter Property=”Control.Background” Value=”LightIndianRed” /> </DataTrigger> </Style.Triggers> </Style>

DataTrigger does not change Text property

The local value assigned to the TextBlock’s Text property has higher precedence than the value provided by the Setter in the DataTrigger. See Dependency Property Value Precedence for details. Set the initial Text value by another Setter: <TextBlock> <TextBlock.Style> <Style TargetType=”TextBlock”> <Setter Property=”Text” Value=”Unclicked”/> <Style.Triggers> <DataTrigger Binding=”{Binding Clicked, Source={x:Static Application.Current}}” Value=”{StaticResource True}”> <Setter Property=”Text” Value=”Clicked” … Read more