DataTrigger

DataTrigger 可以附加到任何属性,无论是它自己的控件,另一个控件,还是非 UI 类中的属性。考虑以下简单类。

public class Cheese
{
    public string Name { get; set; }
    public double Age { get; set; }
    public int StinkLevel { get; set; }
}

我们将在下面的 TextBlock 作为 DataContext 附加。

<TextBlock Text="{Binding Name}">
    <TextBlock.DataContext>
        <local:Cheese Age="12" StinkLevel="100" Name="Limburger"/>
    </TextBlock.DataContext>
    <TextBlock.Style>
        <Style TargetType="{x:Type TextBlock}">
            <Style.Triggers>
                <DataTrigger Binding="{Binding StinkLevel}" Value="100">
                    <Setter Property="Foreground" Value="Green"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </TextBlock.Style>
</TextBlock>

在前面的代码中,TextBlock.Foreground 属性为 Green。如果我们将 XAML 中的 StinkLevel 属性更改为 100 以外的任何值,则 Text.Foreground 属性将恢复为默认值。