【发布时间】:2010-12-27 04:33:51
【问题描述】:
我希望能够拥有一个通用样式模板,该模板可以根据布尔值切换文本框的颜色。但我不想为每个文本框创建独特的样式。我该怎么做?
我在下面放置了一些示例代码,我希望它会如何工作。 三个文本框,都具有不同的绑定,但尝试使用相同的模板根据布尔值选择红色或绿色。
谢谢
<TextBlock Text="{Binding Text1}" Style={DynamicResource MyTextBoxTemplate} DataContext="{Binding MyBool1}" />
<TextBlock Text="{Binding Text2}" Style={DynamicResource MyTextBoxTemplate} DataContext="{Binding MyBool2}" />
<TextBlock Text="{Binding Text3}" Style={DynamicResource MyTextBoxTemplate} DataContext="{Binding MyBool3}" />
<Style x:Key="MyTextBoxTemplate" TargetType="TextBlock">
<Style.Triggers>
<DataTrigger Value="True" Binding="{Binding ???}">
<Setter Property="Foreground" Value="Green" />
</DataTrigger>
<DataTrigger Value="False" Binding="{Binding ???}">
<Setter Property="Foreground" Value="Red" />
</DataTrigger>
</Style.Triggers>
</Style>
【问题讨论】: