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 屬性將恢復為預設值。