Триггер данных не сработает

У меня есть следующие настройки запуска данных на шаблоне управления

<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 ответ

Решение

Просто обоснованное предположение, но я сталкивался с чем-то подобным раньше, и оказалось, что мне нужно остановить каждую раскадровку, прежде чем я начну другую, потому что они конфликтуют друг с другом.

Попробуйте добавить в DataTrigger два действия StopStoryboard: одно для остановки активной раскадровки, а другое - для неактивной раскадровки.

Другие вопросы по тегам