2023年7月22日

Style DataTrigger Setter in Button Content is invalid

作者 dikangqie

wpf – Style DataTrigger Setter in Button Content is invalid – Stack Overflow

Your DataTrigger is not change the value of the Content property because you set it inside the Button declaration. So, once setted, it will never changed. To allow changing, you have to set the value inside the Style.

This will works (I’ve tried):

<StackPanel>
    <TextBox Name="input"/>
    <Button>
        <Button.Style>
            <Style TargetType="Button">
                <Setter Property="Content" Value="DataTrigger Before"></Setter>
                <Style.Triggers>
                    <DataTrigger Binding="{Binding ElementName=input, Path=Text}" Value="1">
                        <Setter Property="Content" Value="Changed"></Setter>
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </Button.Style>
    </Button>
</StackPanel>