C# Datatrigger未启动故事板或根本不启动
无论我做什么,我似乎都无法让数据触发器工作。我试图从视图模型播放一个故事板,当一个值发生变化时,却什么也没有发生,没有错误,没有找不到绑定,什么都没有。。。我当前尝试使用的代码是: XAML:C# Datatrigger未启动故事板或根本不启动,c#,wpf,viewmodel,datatrigger,C#,Wpf,Viewmodel,Datatrigger,无论我做什么,我似乎都无法让数据触发器工作。我试图从视图模型播放一个故事板,当一个值发生变化时,却什么也没有发生,没有错误,没有找不到绑定,什么都没有。。。我当前尝试使用的代码是: XAML: 我可以看到int警报正确地更改为1,我知道页面绑定正在工作,因为页面上的所有其他绑定都正确地显示了它们的绑定,但我似乎无法让数据触发器工作。在这个问题上我需要一些帮助:/我发现你有两件事做错了。一个是触发器应该添加到页面。触发器而不是页面。参考资料。如果触发器在资源中,它将永远不会触发 另一个是故事板。T
我可以看到int警报正确地更改为1,我知道页面绑定正在工作,因为页面上的所有其他绑定都正确地显示了它们的绑定,但我似乎无法让数据触发器工作。在这个问题上我需要一些帮助:/我发现你有两件事做错了。一个是触发器应该添加到
页面。触发器
而不是页面。参考资料
。如果触发器在资源中,它将永远不会触发
另一个是故事板。TargetName=“alert”。除非页面中有名为alert的元素,否则不应将其设置为alert。我相信如果不添加Story.TargetName
,那么它默认为当前元素,即页面。否则,请设置要为其边距设置动画的元素的名称
<Page
DataContext="{Binding ViewModel, Source={StaticResource Locator}}">
<Page.Resources>
<DataTrigger x:Key="alertInDataTrigger" Binding="{Binding alert}" Value="1">
<DataTrigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource alertIn}" x:Name="alertIn_start"/>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<RemoveStoryboard BeginStoryboardName="alertIn_start" />
</DataTrigger.ExitActions>
</DataTrigger>
<Storyboard x:Key="alertIn" Changed="visible" >
<ThicknessAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Margin)" Storyboard.TargetName="alert">
<EasingThicknessKeyFrame KeyTime="0:0:0.3" Value="729,2,2,658"/>
</ThicknessAnimationUsingKeyFrames>
</Storyboard>
<\Page.Resources>
public int alert
{
get { return this._alert; }
set
{
if (this._alert != value)
{
int oldalert = this._alert;
this._alert = value;
RaisePropertyChanged("alert");
}
}
}