DataTrigger 只能触发一次
时间: 2023-08-05 10:34:53
浏览: 84
是的,DataTrigger 是针对绑定数据的控件中的数据发生变化时,自动触发控件的状态转换,但是它只会触发一次。一旦状态被改变,DataTrigger 就不再工作,除非状态变化再次发生。
如果您想要控件的状态在数据发生变化时可以[实时](https://geek.csdn.net/educolumn/020fabea718326d5350ebe5e935f6cdd?spm=1055.2569.3001.10083)更新,可以使用其他的触发器,例如PropertyC[han](https://geek.csdn.net/educolumn/0d22b54eaf6bcf967d9625e1679d00b4?spm=1055.2569.3001.10083)gedTrigger。这个触发器可以在绑定的属性发生变化时自动触发控件的状态转换。您需要使用Microsoft.Xaml.Behaviors.Wpf包中的类,这个包是通过 NuGet 安装的。
下面是一个使用 PropertyC[han](https://geek.csdn.net/educolumn/0d22b54eaf6bcf967d9625e1679d00b4?spm=1055.2569.3001.10083)gedTrigger 的示例:
```xml
<Grid Background="{Binding BackgroundColor}">
<i:Interaction.Triggers>
<ei:PropertyC[han](https://geek.csdn.net/educolumn/0d22b54eaf6bcf967d9625e1679d00b4?spm=1055.2569.3001.10083)gedTrigger Binding="{Binding BackgroundColor}">
<ei:C[han](https://geek.csdn.net/educolumn/0d22b54eaf6bcf967d9625e1679d00b4?spm=1055.2569.3001.10083)gePropertyAction TargetObject="{Binding ElementName=grid}" PropertyName="Background" Value="{Binding BackgroundColor}" />
</ei:PropertyChangedTrigger>
</i:Interaction.Triggers>
</Grid>
在这个示例中,当 BackgroundColor 属性发生变化时,PropertyCh