I need to be able to change the Style
of a control when a property and data value are true. For example, my bound data has an IsDirty
property. I would like to change the background color of my control when IsDirty
is true AND the control is selected. I found the MultiTrigger
and MultiDataTrigger
classes...but in this case I need to somehow trigger on data and property. How can I do this?
Another note: I need to be able to do this in code behind not XAML.
MultiDataTrigger works just as well for DependencyProperties as it does for ordinary properties. Just set the Path in the binding to the name of your dependency property.
You will need to be careful about setting the source of that binding though, since by default the source is the DataContext of the element to which the trigger is attached. If the trigger is used in a style on the selectable object, your can use the RelativeSource property of the Binding:
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding Path=IsDirty}" Value="True" />
<Condition Binding="{Binding Path=IsSelected, RelativeSource={RelativeSource Self}}" Value="True" />
</MultiDataTrigger.Conditions>
<Setter Property="Background" Value="Cyan" />
</MultiDataTrigger>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With