Контроль видимости и запуск анимации элемента из отдельных связанных свойств
Я пытаюсь построить простую сетку, чтобы показать цену, которая должна показывать стрелку, указывающую увеличение или уменьшение стоимости.
Здесь свойство Visibility прекрасно работает, показывая / скрывая стрелку вверх или вниз в зависимости от ситуации. Однако, если Ask перемещается в одном направлении при последующих изменениях, анимация не срабатывает. Должен ли я попытаться создать другое свойство для запуска анимации? Я могу сделать это в коде, но хочу сделать это в XAML, если это возможно.
Определение столбца шаблона приведено ниже
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
<TextBlock Width="40" Text ="{Binding Path=Ask}"></TextBlock>
<TextBlock x:Name="Up">
<TextBlock.Style>
<Style TargetType="TextBlock">
<Setter Property="Visibility" Value="Collapsed"/>
<Style.Triggers>
<DataTrigger Binding="{Binding AskUp}" Value="True">
<Setter Property="Visibility" Value="Visible"/>
<DataTrigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource blinkAnimation}" Name="upAnimation"/>
</DataTrigger.EnterActions>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
<Path x:Name="UpArrow" Data="M 0 8 L 4 0 L 8 8 Z" Fill="Green"/>
</TextBlock>
<TextBlock x:Name="Down">
<TextBlock.Style>
<Style TargetType="TextBlock">
<Setter Property="Visibility" Value="Collapsed"/>
<Style.Triggers>
<DataTrigger Binding="{Binding AskUp}" Value="False">
<Setter Property="Visibility" Value="Visible"/>
<DataTrigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource blinkAnimation}" Name="downAnimation"/>
</DataTrigger.EnterActions>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
<Path x:Name="DownArrow" Data="M 0 0 L 4 8 L 8 0 Z" Fill="Red" />
</TextBlock>
</StackPanel>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
Мой фрагмент анимации
<Window.Resources>
<Storyboard x:Key="blinkAnimation">
<DoubleAnimation Storyboard.TargetProperty ="(UIElement.Opacity)" From="1" To="0" Duration="0:0:0.125" AutoReverse="True" FillBehavior="Stop" RepeatBehavior="0:0:1">
</DoubleAnimation>
</Storyboard>
</Window.Resources>