gpt4 book ai didi

c# - 如何刷新wpf数据触发器?

转载 作者:行者123 更新时间:2023-11-30 22:35:52 25 4
gpt4 key购买 nike

我有如下所示的带有 Storyboard 的网格。

<Grid x:Name="grd_Order"   Grid.Column="2" Height="16" Margin="0,-2,0,0" Visibility="Collapsed" HorizontalAlignment="Center" VerticalAlignment="Center">
<Grid.Resources>
<Storyboard x:Key="stry_OrderMsgShowHide" RepeatBehavior="3x">
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(Visibility)" >
<DiscreteObjectKeyFrame KeyTime="0" Value="{x:Static Visibility.Visible}"/>
<DiscreteObjectKeyFrame KeyTime="0:0:2" Value="{x:Static Visibility.Collapsed}"/>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</Grid.Resources>
<Grid.Style>
<Style >
<Style.Triggers>
<DataTrigger Value="True" Binding="{Binding Path=BlinkOrderAlert,Mode=TwoWay}">
<DataTrigger.EnterActions>
<BeginStoryboard x:Name="stry_BlinkOrdAlert" Storyboard="{StaticResource stry_OrderMsgShowHide}"/>
</DataTrigger.EnterActions>
</DataTrigger>
</Style.Triggers>
</Style>

在我的 ViewModel.cs 中,

        private bool blinkOrderAlert;
public bool BlinkOrderAlert
{
get
{
return blinkOrderAlert;
}
set
{
if (blinkOrderAlert == value)
return;
this.blinkOrderAlert = value;
this.RaisePropertyChanged(this, new PropertyChangedEventArgs("BlinkOrderAlert"));
}
}

public void BlinkOrdAlert()
{
this.BlinkOrderAlert=false;
this.BlinkOrderAlert = true;

}
public ViewModel()
{
this.BlinkOrderAlert=true;
}

并且它只在构造函数初始化时第一次起作用。每当我调用 BlinkOrdAlert 函数时,它就不再工作了。我如何修改数据触发器以在每次调用该函数时运行 Storyboard ?谢谢。

最佳答案

考虑将以下数据触发器添加到您的样式中。当 BlinkOrderAlert 值设置为 false 时,以下数据触发器将删除 Storyboard,当值为 true 时,它​​将添加 Storyboard。

希望这会有所帮助。

<DataTrigger Value="False" Binding="{Binding Path=BlinkOrderAlert,Mode=TwoWay}">
<DataTrigger.EnterActions>
<RemoveStoryboard BeginStoryboardName="stry_BlinkOrdAlert"></RemoveStoryboard>
</DataTrigger.EnterActions>
</DataTrigger>

关于c# - 如何刷新wpf数据触发器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7279064/

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