[英]Datatrigger Not Firing Storyboard Or Not At All
无论我做什么,我似乎都无法使数据触发器正常工作。 当值更改但没有发生任何事情,没有错误,找不到绑定,什么也没有的时候,我正在尝试从视图模型中播放一个故事图板。我当前试图开始工作的代码是:
XAML:
<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>
C#:
public int alert
{
get { return this._alert; }
set
{
if (this._alert != value)
{
int oldalert = this._alert;
this._alert = value;
RaisePropertyChanged("alert");
}
}
}
我可以看到int警报正确地更改为1,并且我知道页面绑定正在工作,因为页面上的所有其他绑定都正确显示了它们的绑定,但是我似乎无法使数据触发器正常工作。 我可以在这个树桩上使用一些帮助:/
我发现您做错了两件事。 一种是应将触发器添加到Page.Triggers
而不是Page.Resources
。 如果触发器在资源中,则永远不会触发。
另一个是Storyboard.TargetName="alert"
。 除非Page
中有一个名为alert的元素,否则不应将其设置为alert。 我相信,如果不添加Story.TargetName
那么它将默认为当前元素即页面。 否则,设置要为其边框设置动画的元素的名称。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.