DataBinding with datatriggers XAML with 布尔局部变量
DataBinding with datatriggers XAML with Boolean Local Variable
当 newCall 的值为真时,我无法让我的 tabitem 闪烁。我想我的 Xaml 是正确的,但我不确定如何在代码中绑定它。当变量 new Call 设置为 true 时,我希望我的 tabitem 闪烁。
<TabItem.Style>
<Style TargetType="{x:Type TabItem}" BasedOn="{StaticResource MetroTabItem}">
<Style.Resources>
<Storyboard x:Key="flashAnimation" >
<DoubleAnimation Storyboard.TargetProperty="Opacity" From="1" To="0" AutoReverse="True" Duration="0:0:0.5" RepeatBehavior="Forever" />
</Storyboard>
</Style.Resources>
<Style.Triggers>
<DataTrigger Binding="{Binding newCall}" Value="True">
<DataTrigger.EnterActions>
<BeginStoryboard Name="flash" Storyboard="{StaticResource flashAnimation}" />
</DataTrigger.EnterActions>
</DataTrigger>
</Style.Triggers>
</Style>
</TabItem.Style>
您的 ViewModel 必须实现 INotifyPropertyChanged
。在 ViewModel 中添加以下代码:
private bool _newCall;
public bool newCall
{
get { return _newCall; }
set
{
_newCall = value;
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs("newCall"));
}
}
}
并将Binding="{Binding newCall}
更改为Binding="{Binding newCall, UpdateSourceTrigger=PropertyChanged}"
然后,只要 newCall 设置为 true,TabItem 就会开始闪烁
当 newCall 的值为真时,我无法让我的 tabitem 闪烁。我想我的 Xaml 是正确的,但我不确定如何在代码中绑定它。当变量 new Call 设置为 true 时,我希望我的 tabitem 闪烁。
<TabItem.Style>
<Style TargetType="{x:Type TabItem}" BasedOn="{StaticResource MetroTabItem}">
<Style.Resources>
<Storyboard x:Key="flashAnimation" >
<DoubleAnimation Storyboard.TargetProperty="Opacity" From="1" To="0" AutoReverse="True" Duration="0:0:0.5" RepeatBehavior="Forever" />
</Storyboard>
</Style.Resources>
<Style.Triggers>
<DataTrigger Binding="{Binding newCall}" Value="True">
<DataTrigger.EnterActions>
<BeginStoryboard Name="flash" Storyboard="{StaticResource flashAnimation}" />
</DataTrigger.EnterActions>
</DataTrigger>
</Style.Triggers>
</Style>
</TabItem.Style>
您的 ViewModel 必须实现 INotifyPropertyChanged
。在 ViewModel 中添加以下代码:
private bool _newCall;
public bool newCall
{
get { return _newCall; }
set
{
_newCall = value;
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs("newCall"));
}
}
}
并将Binding="{Binding newCall}
更改为Binding="{Binding newCall, UpdateSourceTrigger=PropertyChanged}"
然后,只要 newCall 设置为 true,TabItem 就会开始闪烁