Reputation: 63
<ControlTemplate.Triggers>
<DataTrigger Binding="{Binding HamburgerMenu_IsOpen, Mode=OneWay}" Value="True">
<DataTrigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource HamburgerMenuRectangles_OpenMenu}"/>
</DataTrigger.EnterActions>
</DataTrigger>
<DataTrigger Binding="{Binding HamburgerMenu_IsOpen, Mode=OneWay}" Value="False">
<DataTrigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource HamburgerMenuRectangles_CloseMenu}"/>
</DataTrigger.EnterActions>
</DataTrigger>
</ControlTemplate.Triggers>
Only second DataTrigger(CloseMenu) works. If I swap the second(CloseMenu) with the first(OpenMenu) DataTriggers, then OpenMenu Trigger will works, but Close won't work. I need two triggers to work.
Upvotes: 0
Views: 154
Reputation: 2376
You bind a single property in two separated DataTrigger
s, if multiple DataTrigger
s handle only one dependency property, only the last one works.
It's recommended to merge the two DataTrigger
s into one.
<ControlTemplate.Triggers>
<DataTrigger Binding="{Binding HamburgerMenu_IsOpen, Mode=OneWay}" Value="True">
<DataTrigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource HamburgerMenuRectangles_OpenMenu}"/>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<BeginStoryboard Storyboard="{StaticResource HamburgerMenuRectangles_CloseMenu}"/>
</DataTrigger.ExitActions>
</DataTrigger>
</ControlTemplate.Triggers>
Then your EnterActions
will invoke when the value is true and ExitActions
will invoke when it is false.
Upvotes: 2