WPF MVVM数据触发器不工作

WPF MVVM数据触发器不工作,wpf,mvvm,datatrigger,Wpf,Mvvm,Datatrigger,我刚刚开始使用数据触发器,所以如果它很简单,我很抱歉,但我无法让我的数据触发器工作。可能是因为我还有一个命令绑定吗 <Button x:Name="logOnButton" HorizontalAlignment="Left" Margin="369,70,0,0" VerticalAlignment="Top" Width="75" IsEnabled="True" Command="{Binding LogonButtonClick}"> <Button.

我刚刚开始使用数据触发器,所以如果它很简单,我很抱歉,但我无法让我的数据触发器工作。可能是因为我还有一个命令绑定吗

<Button x:Name="logOnButton"  HorizontalAlignment="Left" Margin="369,70,0,0" VerticalAlignment="Top" Width="75" IsEnabled="True" Command="{Binding LogonButtonClick}">
        <Button.Style>
            <Style TargetType="Button">
                <Setter Property="Background" Value="Red"/>
                <Setter Property="Content" Value="Log On"/>
                <Style.Triggers>
                    <DataTrigger Binding="{Binding LoggedOn}" Value="True">
                        <Setter Property="Control.Background" Value="Green"/>
                        <Setter Property="Content" Value="Log Off"/>
                    </DataTrigger>
                    <DataTrigger Binding="{Binding LoggedOn}" Value="False">
                        <Setter Property="Control.Background" Value="Red"/>
                        <Setter Property="Content" Value="Log On"/>
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </Button.Style>
    </Button>


谢谢大家,我不得不手动启动属性更改,我以为这是自动完成的。一旦我做到了,一切都正常

您的
LoggedOn
属性是否使用了
INotifyPropertyChanged
?是的,但我没有显式调用它,因为我的理解是这是自动的LoggedOn属性设置器必须在属性值更改时(在设置支持字段后)触发PropertyChanged事件。我发现您的默认控件属性与如果
LoggedOn=False
相同,那么第二个
DataTrigger
是否触发?如果是这样,我会按照克莱门斯的建议,在
LoggedOn
属性设置器中触发事件。当然,第二个DataTrigger是多余的,因为它只设置样式设置器已经设置的值。此外,
Property=“Control.Background”
应该是
Property=“Background”