gpt4 book ai didi

c# - DataTrigger 内的 Storyboard 不会在 RaisePropertyChanged 事件上多次触发

转载 作者:行者123 更新时间:2023-12-03 10:29:46 25 4
gpt4 key购买 nike

我正在使用 MVVM 模型。

我有一个依赖属性,一个 bool 值,称为“ResultOfUpdate”。每当用户尝试运行命令时,它都会更改。

在此依赖属性的 setter 中,我在属性名称上调用“RaisePropertyChanged()”方法。

它绑定(bind)到 DataTrigger像这样:

<DataTrigger Binding="{Binding ResultOfUpdate}"  Value="True">
<DataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(TextBlock.Opacity)"
AutoReverse="True">
<DiscreteDoubleKeyFrame KeyTime="0:0:0" Value="0"/>
<DiscreteDoubleKeyFrame KeyTime="0:0:0.1" Value="0.1"/>
<DiscreteDoubleKeyFrame KeyTime="0:0:0.2" Value="0.2"/>
<DiscreteDoubleKeyFrame KeyTime="0:0:0.3" Value="0.3"/>
<DiscreteDoubleKeyFrame KeyTime="0:0:0.4" Value="0.4"/>
<DiscreteDoubleKeyFrame KeyTime="0:0:0.5" Value="0.5"/>
<DiscreteDoubleKeyFrame KeyTime="0:0:0.6" Value="0.6"/>
<DiscreteDoubleKeyFrame KeyTime="0:0:0.7" Value="0.7"/>
<DiscreteDoubleKeyFrame KeyTime="0:0:0.8" Value="0.8"/>
<DiscreteDoubleKeyFrame KeyTime="0:0:0.9" Value="0.9"/>
<DiscreteDoubleKeyFrame KeyTime="0:0:0.1" Value="1"/>
<DiscreteDoubleKeyFrame KeyTime="0:0:0.3" Value="1"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
</DataTrigger>

...
 <TextBlock Style="{StaticResource statusStyle}"  
Opacity="0" Text="Results updated!"
FontSize="10" FontFamily="Segoe UI"/>

我每次都想要这个 bool设置为 true,则播放 Storyboard。

令人困惑的是,这个 Storyboard 在用户第一次运行命令时被正确触发,将依赖属性更新为 true。

后续尝试发现,输入了依赖属性setter代码,调用了RaisePropertyChanged()方法——但是storyboard并没有再次播放。

我在这里做错了什么?

最佳答案

您可能会使用这样的事件触发器:

<StackPanel>
<TextBlock Text="I'm a text block" Name="theTextBlock"/>
<Button Name="BeginButton">Begin</Button>
<StackPanel.Triggers>
<EventTrigger RoutedEvent="Button.Click" SourceName="BeginButton">
<BeginStoryboard Name="MyBeginStoryboard">
<Storyboard>
<DoubleAnimation
Storyboard.TargetName="theTextBlock"
Storyboard.TargetProperty="(TextBlock.Opacity)"
From="0.0" To="1.0" AutoReverse="True" Duration="0:0:1"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</StackPanel.Triggers>
</StackPanel>

关于c# - DataTrigger 内的 Storyboard 不会在 RaisePropertyChanged 事件上多次触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11122737/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com