且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

使用DataTrigger绑定到样式自

更新时间:2022-05-30 02:47:58

为什么不将其更改为Trigger?

Why don't you change it to Trigger?

  <Style x:Key="MyButtonStyle"
           TargetType="Button">
        <Style.Triggers>
            <Trigger Property="IsEnabled"
                     Value="False">
                <Setter Property="Background"
                        Value="Purple" />
            </Trigger>
            <Trigger Property="IsEnabled"
                     Value="True">
                <Setter Property="Background"
                        Value="Yellow" />
            </Trigger>
        </Style.Triggers>
    </Style>

或者如果您仍要使用它,则无需寻找祖先,因为您当前在按钮上:

Or if you want to use it anyway, you don't need to find an ancestor, because you're currently on the button:

  <Style x:Key="MyButtonStyle"
           TargetType="Button">
        <Style.Triggers>
            <DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=IsEnabled, PresentationTraceSources.TraceLevel=High}"
                         Value="False">
                <Setter Property="Background"
                        Value="Purple" />
            </DataTrigger>
            <DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=IsEnabled, PresentationTraceSources.TraceLevel=High}"
                         Value="True">
                <Setter Property="Background"
                        Value="Yellow" />
            </DataTrigger>
        </Style.Triggers>
    </Style>

如果没有帮助,您应该提供更多详细信息:原始XAML代码,也许您的View模型的代码也是如此。

If it doesn't help you, you should give more details: Original XAML code and maybe your View Model's code too.