Wpf XAML-带有触发器/参数的通用文本框样式?

Wpf XAML-带有触发器/参数的通用文本框样式?,wpf,xaml,.net-3.5,binding,Wpf,Xaml,.net 3.5,Binding,我希望能够有一个通用的样式模板,可以切换我的文本框颜色的基础上布尔。但我不想为每个文本框创建一个独特的样式。我该怎么做 我已经在下面列出了一些示例代码,说明我可能期望它如何工作。 三个文本框,所有文本框具有不同的绑定,但试图使用相同的模板根据布尔值选择红色或绿色 谢谢 <TextBlock Text="{Binding Text1}" Style={DynamicResource MyTextBoxTemplate} DataContext="{Binding MyBool1}" />

我希望能够有一个通用的样式模板,可以切换我的文本框颜色的基础上布尔。但我不想为每个文本框创建一个独特的样式。我该怎么做

我已经在下面列出了一些示例代码,说明我可能期望它如何工作。 三个文本框,所有文本框具有不同的绑定,但试图使用相同的模板根据布尔值选择红色或绿色

谢谢

<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>

您可以使用TextBox的属性

<TextBlock Text="{Binding Text1}" Style={DynamicResource MyTextBoxTemplate} Tag="{Binding MyBool1}" />
<TextBlock Text="{Binding Text2}" Style={DynamicResource MyTextBoxTemplate} Tag="{Binding MyBool2}" />
<TextBlock Text="{Binding Text3}" Style={DynamicResource MyTextBoxTemplate} Tag="{Binding MyBool3}" />

<Style x:Key="MyTextBoxTemplate" TargetType="TextBlock">
    <Style.Triggers>
        <Trigger Property="Tag" Value="True">
            <Setter Property="Foreground" Value="Green" />
        </Trigger>
        <Trigger Property="Tag" Value="False">
            <Setter Property="Foreground" Value="Red" />
        </Trigger>
    </Style.Triggers>
</Style>

您也可以使用附加属性来代替标记