一个datattrigger用于多个属性



我有一个listview绑定到一个Observable集合,listview有属性,其中大多数将使用相同的触发器。是否可以在资源部分定义一次触发器,并且只在属性需要时引用它?

到目前为止,我得出了这个结论:

<Style TargetType="TextBlock" x:Key="Pstyle">
<Setter Property="Text" Value="Testing"/>
<Style.Triggers>
<DataTrigger Binding="{Binding P1}" Value="Testing">
<Setter Property="Foreground" Value="DarkGreen"/>
<Setter Property="FontWeight" Value="Bold"/>
</DataTrigger>
</Style.Triggers>
</Style>

在listview成员中,我只是将定义的样式应用于属性P1

Style="{DynamicResource Pstyle}"

但是如何应用相同的定义触发器比如P2 P3 P4…

既然你想把你的触发逻辑放在TextBlock的内容上,在我看来,你应该使用Trigger针对Text属性,而不是DataTrigger

查看下面的示例代码:

<Style TargetType="TextBlock" x:Key="Pstyle">
<Style.Triggers>
<Trigger Property="Text" Value="Testing">
<Setter Property="Foreground" Value="DarkGreen"/>
<Setter Property="FontWeight" Value="Bold"/>
</Trigger>
</Style.Triggers>
</Style>
<TextBlock Name="MyTextBlock1" Text="MyTextBlock1Text" Style="{StaticResource Pstyle}"/>
<TextBlock Name="MyTextBlock2" Text="MyTextBlock2Text" Style="{StaticResource Pstyle}"/>
<TextBlock Name="MyTextBlock3" Text="MyTextBlock3Text" Style="{StaticResource Pstyle}"/>

正如你所看到的,只有一个单一的样式应用于不同的Textblock

那么你应该把它应用到你的listview中。

相关内容

  • 没有找到相关文章

最新更新