几个MultiDataTriggers仅适用于最后一个

Mim*_*imi 3 c# wpf xaml multidatatrigger

UserControl我有一个类型的DP enum(GroupStyle类型eGroupStyle)和类型bool(IsGrouped)的DP .我需要在所有可能的条件下开始一些故事板.但最后MultiDataTrigger一件作品才有效.我哪里错了?此外,我想知道是否存在一种更简单的方法来考虑这些条件.(检查IsGrouped一次.)

C#:

enum eGroupStyle
{
    GroupStyle1,
    GroupStyle2,
    ???,
    GroupStyleN,
}
Run Code Online (Sandbox Code Playgroud)

XAML:

<MultiDataTrigger>
    <MultiDataTrigger.Conditions>
        <Condition Binding="{Binding GroupStyle}" Value="GroupStyle1"/>
        <Condition Binding="{Binding IsGrouped}" Value="False"/>
    </MultiDataTrigger.Conditions>
    <MultiDataTrigger.EnterActions>
        <BeginStoryboard  Storyboard="{StaticResource Storyboard_TurnToUnselectedStyle1}"/>
    </MultiDataTrigger.EnterActions>
</MultiDataTrigger>
<MultiDataTrigger>
    <MultiDataTrigger.Conditions>
        <Condition Binding="{Binding GroupStyle}" Value="GroupStyle1"/>
        <Condition Binding="{Binding IsGrouped}" Value="True"/>
    </MultiDataTrigger.Conditions>
    <MultiDataTrigger.EnterActions>
        <BeginStoryboard  Storyboard="{StaticResource Storyboard_TurnToSelectedStyle1}"/>
    </MultiDataTrigger.EnterActions>
</MultiDataTrigger>
<MultiDataTrigger>
    <MultiDataTrigger.Conditions>
        <Condition Binding="{Binding GroupStyle}" Value="GroupStyle2"/>
        <Condition Binding="{Binding IsGrouped}" Value="False"/>
    </MultiDataTrigger.Conditions>
    <MultiDataTrigger.EnterActions>
        <BeginStoryboard  Storyboard="{StaticResource Storyboard_TurnToUnselectedStyle2}"/>
    </MultiDataTrigger.EnterActions>
</MultiDataTrigger>
<MultiDataTrigger>
    <MultiDataTrigger.Conditions>
        <Condition Binding="{Binding GroupStyle}" Value="GroupStyle2"/>
        <Condition Binding="{Binding IsGrouped}" Value="True"/>
    </MultiDataTrigger.Conditions>
    <MultiDataTrigger.EnterActions>
        <BeginStoryboard  Storyboard="{StaticResource Storyboard_TurnToSelectedStyle2}"/>
    </MultiDataTrigger.EnterActions>
</MultiDataTrigger>
???
<MultiDataTrigger>
    <MultiDataTrigger.Conditions>
        <Condition Binding="{Binding GroupStyle}" Value="GroupStyleN"/>
        <Condition Binding="{Binding IsGrouped}" Value="False"/>
    </MultiDataTrigger.Conditions>
    <MultiDataTrigger.EnterActions>
        <BeginStoryboard  Storyboard="{StaticResource Storyboard_TurnToUnselectedStyleN}"/>
    </MultiDataTrigger.EnterActions>
</MultiDataTrigger>
<MultiDataTrigger>
    <MultiDataTrigger.Conditions>
        <Condition Binding="{Binding GroupStyle}" Value="GroupStyleN"/>
        <Condition Binding="{Binding IsGrouped}" Value="True"/>
    </MultiDataTrigger.Conditions>
    <MultiDataTrigger.EnterActions>
        <BeginStoryboard  Storyboard="{StaticResource Storyboard_TurnToSelectedStyleN}"/>
    </MultiDataTrigger.EnterActions>
</MultiDataTrigger>
Run Code Online (Sandbox Code Playgroud)

Mim*_*imi 9

我发现了!我需要在下面的退出操作中删除之前的故事板.现在它工作:)

<MultiDataTrigger>
    <MultiDataTrigger.Conditions>
        <Condition Binding="{Binding Path=GroupStyle}" Value="GroupStyle1"/>
        <Condition Binding="{Binding Path=IsGrouped}" Value="False"/>
    </MultiDataTrigger.Conditions>
    <MultiDataTrigger.EnterActions>
        <BeginStoryboard x:Name="BeginStoryboard_TurnToUnselectedStyle1" Storyboard="{StaticResource Storyboard_TurnToUnselectedStyle1}"/>
    </MultiDataTrigger.EnterActions>
    <MultiDataTrigger.ExitActions>
        <RemoveStoryboard BeginStoryboardName="BeginStoryboard_TurnToUnselectedStyle1"/>
    </MultiDataTrigger.ExitActions>
</MultiDataTrigger>
Run Code Online (Sandbox Code Playgroud)