数据触发器不会触发

时间:2009-07-27 16:25:29

标签: wpf triggers datatrigger multidatatrigger

我在控制模板上设置了以下数据触发器

<DataTrigger Binding="{Binding Path=IsDragged}"
             Value="True">
    <DataTrigger.EnterActions>
        <BeginStoryboard Storyboard="{StaticResource Active}" />
    </DataTrigger.EnterActions>
    <DataTrigger.ExitActions>
        <BeginStoryboard Storyboard="{StaticResource Unactive}" />
    </DataTrigger.ExitActions>
</DataTrigger>

一般情况下,它会至少发射一次(并非总是)并且在某些时候会停止。一些额外的有趣的说明:

  • 在MultiDataTrigger中设置相同的属性,此触发器将始终触发
  • 在另一个触发器中引用相同的故事板,它们在此触发器失败后继续运行

编辑:MultiDataTriggers的设置如下:

<MultiDataTrigger>
    <MultiDataTrigger.Conditions>
        <Condition Binding="{Binding Path=IsActive}"
                   Value="True" />
        <Condition Binding="{Binding Path=IsDragged}"
                   Value="False" />
        <Condition Binding="{Binding Path=IsInCart}"
                   Value="False" />
    </MultiDataTrigger.Conditions>
    <MultiDataTrigger.EnterActions>
        <BeginStoryboard x:Name="ShowTag_BeginStoryboard"
                         Storyboard="{StaticResource ShowTag}" />
    </MultiDataTrigger.EnterActions>
    <MultiDataTrigger.ExitActions>
        <BeginStoryboard x:Name="HideTag_BeginStoryboard"
                         Storyboard="{StaticResource HideTag}" />
    </MultiDataTrigger.ExitActions>
</MultiDataTrigger>

1 个答案:

答案 0 :(得分:1)

只是一个有根据的猜测,但我之前遇到过这样的事情,事实证明我需要在开始另一个故事板之前停止每个故事板,因为它们彼此冲突。

尝试向DataTrigger添加两个StopStoryboard操作,一个用于停止活动情节提要,另一个用于停止无效故事板。