我有一个名为IsLoginWrong的布尔属性,如果IsLoginWrong为true,我想播放一个故事板动画. (IsLoginWrong执行OnPropertyChanged事件,所以我知道绑定没问题)但是我的语法很难.这可能不是正确的,但我认为数据触发器只能存在于样式中……
<UserControl.Style> <Style> <Style.Triggers> <DataTrigger Binding="{Binding Path=IsLoginWrong}" Value="True"> <DataTrigger.EnterActions> <BeginStoryboard Storyboard="{StaticResource LoginWrong}"/> </DataTrigger.EnterActions> </DataTrigger> </Style.Triggers> </Style> </UserControl.Style>
但是这引发了一个异常“Style中的故事板树无法指定TargetName”… beause样式无法专门引用项目..真棒.那我怎么做我想做的事情呢? (如果布尔值在mvvm中发生变化,则播放动画)
谢谢
解决方法
在样式中,您无法引用故事板名称.所以我开始工作的方式是在实际风格中推动你的故事板:
<UserControl.Style> <Style> <Style.Triggers> <DataTrigger Binding="{Binding Path=IsLoginWrong}" Value="True"> <DataTrigger.EnterActions> <BeginStoryboard> <Storyboard> .... PUT YOUR ACTUAL STORY BOARD IN HERE ... </Storyboard> </BeginStoryboard> </DataTrigger.EnterActions> </DataTrigger> </Style.Triggers> </Style> </UserControl.Style>
现在DataTriggers可以放入样式或控件模板中,因此使用控件模板可能有更好的方法.但这是我暂时想出来的.