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
属性将恢复为默认值。