条件覆盖样式属性

时间:2013-06-06 10:37:23

标签: wpf

如果字段的值包含指定的文本,我正在尝试更改文本框的背景。我遇到的问题是我已经有一个应用于该字段的样式,我尝试覆盖该样式的属性,如下例所示,但没有成功。任何想法我怎么能实现这个目标?

<TextBox Grid.Column="1"
        HorizontalAlignment="Right"
        Text="{Binding CustomerType}" >

    <TextBox.Style BasedOn="{DynamicResource SelectableTextStyle}">
        <Style>
            <Style.Triggers>
                <DataTrigger Binding="{Binding CustomerType}" Value="Unknown">
                    <Setter Property="TextBox.Background" Value="Tomato"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </TextBox.Style>
</TextBox>

1 个答案:

答案 0 :(得分:0)

您编写的样式定义可能甚至不应该编译,因为您在属性元素(TextBox.Style标记)上使用了一个属性。

更新您的代码,以便内部样式定义具有'BasedOn'属性,如下所示:

<TextBox.Style>
    <Style TargetType="TextBox" BasedOn="{DynamicResource SelectableTextStyle}">
        <Style.Triggers>
        ....

一切都会变成肉汁。