Wpf 是否可以修改文本框样式以使用特定的datatrigger?

Wpf 是否可以修改文本框样式以使用特定的datatrigger?,wpf,datatrigger,Wpf,Datatrigger,我有一个文本框,它使用了所有文本框都通用的样式,所以我可以对所有文本框使用相同的外观 但是,在特定的文本框中,我需要根据条件修改其可视性,因此我尝试这样做: <TextBox Text="{Binding MyBinding, Mode=OneWay}" Style="{StaticResource TextBoxStyle1}"> <TextBox.Style> <Style TargetType="StackPanel"

我有一个文本框,它使用了所有文本框都通用的样式,所以我可以对所有文本框使用相同的外观

但是,在特定的文本框中,我需要根据条件修改其可视性,因此我尝试这样做:

<TextBox 
    Text="{Binding MyBinding, Mode=OneWay}"
    Style="{StaticResource TextBoxStyle1}">
    <TextBox.Style>
        <Style TargetType="StackPanel">
            <Setter Property="Visibility" Value="Visible"/>
            <Style.Triggers>
                <DataTrigger Binding="{Binding ElementName=thisView, Path=DataContext.MyPropertyInViewModel}" Value="3">
                    <Setter Property="Visibility" Value="Collapsed"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </TextBox.Style>
</TextBox>

问题是我不能设置两次样式,所以我不知道如何定义数据触发器来隐藏文本框

我怎么能这么做

谢谢。

删除样式=“{StaticResource TextBoxStyle1}” 并将BasedOn标记添加到新样式BasedOn=“{StaticResource TextBoxStyle1}”


这将允许您重用现有样式。但是,如果现有样式已经定义了不需要的DataTrigger,则需要为此文本框创建新样式。

删除样式=“{StaticResource TextBoxStyle1}” 并将BasedOn标记添加到新样式BasedOn=“{StaticResource TextBoxStyle1}”


这将允许您重用现有样式。但是,如果现有样式已经定义了不需要的DataTrigger,则需要为此文本框创建新样式

<TextBox 
    Text="{Binding MyBinding, Mode=OneWay}">
    <TextBox.Style>
        <Style TargetType="StackPanel" BasedOn="{StaticResource TextBoxStyle1}">
            <Setter Property="Visibility" Value="Visible"/>
            <Style.Triggers>
                <DataTrigger Binding="{Binding ElementName=thisView, Path=DataContext.MyPropertyInViewModel}" Value="3">
                    <Setter Property="Visibility" Value="Collapsed"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </TextBox.Style>
</TextBox>