WPF: How do I set the Foreground property of a TextBlock using DataTrigger
datatrigger, foreground, textblock, wpf
Solution
Your triggers and setters need to be defined in a style, rather than on the TextBlock directly:
<TextBlock>
<TextBlock.Style>
<Style TargetType="TextBlock">
<Style.Triggers>
<DataTrigger Binding="{Binding Severity}">
<DataTrigger.Value>
<sm:Severity>Warning</sm:Severity>
</DataTrigger.Value>
<Setter TargetName="SeverityText"
Property="Foreground"
Value="Yellow" />
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
Problem
This is my XAML: ``` <TextBlock Name="SeverityText" Grid.Column="1" Grid.Row="0" Foreground="Red"> <TextBlock.Triggers> <DataTrigger Binding="{Binding Path=Severity}"> <DataTrigger.Value> <sm:Severity>Warning</sm:Severity> </DataTrigger.Value> <Setter TargetName="SeverityText" Property="Foreground" Value="Yellow" /> </DataTrigger> <DataTrigger Binding="{Binding Path=Severity}"> <DataTrigger.Value> <sm:Severity>Information</sm:Severity> </DataTrigger.Value> <Setter TargetName="SeverityText" Property="Foreground" Value="White" /> </DataTrigger> </TextBlock.Triggers> <TextBlock>Severity:</TextBlock> <TextBlock Text="{Binding Path=Severity}" /> </TextBlock> ``` This is my error message: Cannot find the static member 'ForegroundProperty' on the type 'ContentPresenter'. sm:Severity is an enumeration I imported.