DataTrigger 只能触发一次
时间: 2023-08-05 07:34:53 浏览: 207
是的,DataTrigger 是针对绑定数据的控件中的数据发生变化时,自动触发控件的状态转换,但是它只会触发一次。一旦状态被改变,DataTrigger 就不再工作,除非状态变化再次发生。
如果您想要控件的状态在数据发生变化时可以实时更新,可以使用其他的触发器,例如PropertyChangedTrigger。这个触发器可以在绑定的属性发生变化时自动触发控件的状态转换。您需要使用Microsoft.Xaml.Behaviors.Wpf包中的类,这个包是通过 NuGet 安装的。
下面是一个使用 PropertyChangedTrigger 的示例:
```xml
<Grid Background="{Binding BackgroundColor}">
<i:Interaction.Triggers>
<ei:PropertyChangedTrigger Binding="{Binding BackgroundColor}">
<ei:ChangePropertyAction TargetObject="{Binding ElementName=grid}" PropertyName="Background" Value="{Binding BackgroundColor}" />
</ei:PropertyChangedTrigger>
</i:Interaction.Triggers>
</Grid>
```
在这个示例中,当 BackgroundColor 属性发生变化时,PropertyChangedTrigger 会自动触发控件的状态转换,将 Background 属性绑定到 BackgroundColor 属性。这样就可以实现控件状态在数据变化时实时更新的效果。
阅读全文