Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

WPF Trigger when Property and Data value are true

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.

like image 860
KrisTrip Avatar asked May 27 '10 14:05

KrisTrip


1 Answers

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>
like image 177
Samuel Jack Avatar answered Oct 30 '22 04:10

Samuel Jack