WPF Datagrid事件DataTriggers vs EventTriggers
相对简单的问题,我正在努力找到一个很好的优雅的解决方案。我有一个网格,其中有一列显示每n秒更新一次的值。我希望在数值改变时显示动画,并根据数值是负数还是正数以不同颜色闪烁单元格。找到了一整套几乎可以满足我需求的方法,但没有一种方法完全符合我的需求WPF Datagrid事件DataTriggers vs EventTriggers,wpf,binding,datagrid,datatrigger,eventtrigger,Wpf,Binding,Datagrid,Datatrigger,Eventtrigger,相对简单的问题,我正在努力找到一个很好的优雅的解决方案。我有一个网格,其中有一列显示每n秒更新一次的值。我希望在数值改变时显示动画,并根据数值是负数还是正数以不同颜色闪烁单元格。找到了一整套几乎可以满足我需求的方法,但没有一种方法完全符合我的需求 使用EventTrigger,我可以在每次更新时使单元格闪烁。使用下面一个相对简单的动画。但是我无法使动画使用的颜色有条件,因为故事板冻结了UI元素,所以我无法在故事板中使用绑定来定义颜色 <EventTrigger Route
- 使用EventTrigger,我可以在每次更新时使单元格闪烁。使用下面一个相对简单的动画。但是我无法使动画使用的颜色有条件,因为故事板冻结了UI元素,所以我无法在故事板中使用绑定来定义颜色
<EventTrigger RoutedEvent="Binding.TargetUpdated"> <BeginStoryboard HandoffBehavior="Compose" Name="GreenCell"> <Storyboard TargetProperty="(TextBlock.Background).(SolidColorBrush.Color)"> <ColorAnimation Duration="0:0:1.50" From="Green" To="Transparent" AutoReverse="False"/> </Storyboard> </BeginStoryboard> </EventTrigger>
- 使用数据触发器,我可以创建一个转换器,将更新转换为该值,如果该值为负值,则将数据触发器绑定到该值,并在该值更改时设置背景颜色,从而使单元格颜色有条件。但是如果数字已经是负数,并且仍然是负数(但会发生变化),则不会触发
<DataTrigger Binding="{Binding Value, Converter={StaticResource cellBackGroundConverter}}" Value="True"> <DataTrigger.EnterActions> <BeginStoryboard HandoffBehavior="Compose" Name="GreenCell"> <Storyboard TargetProperty="(TextBlock.Background).(SolidColorBrush.Color)"> <ColorAnimation Duration="0:0:1.50" From="Green" To="Transparent" AutoReverse="False"/> </Storyboard> </BeginStoryboard> </DataTrigger.EnterActions> </DataTrigger> <DataTrigger Binding="{Binding Value, Converter={StaticResource cellBackGroundConverter}}" Value="False"> <DataTrigger.EnterActions> <BeginStoryboard HandoffBehavior="Compose" Name="RedCell"> <Storyboard TargetProperty="(TextBlock.Background).(SolidColorBrush.Color)"> <ColorAnimation Duration="0:0:1.50" From="Red" To="Transparent" AutoReverse="False"/> </Storyboard> </BeginStoryboard> </DataTrigger.EnterActions> </DataTrigger>