Вы можете использовать триггеры внутри стиля:
<TextBlock Text="{Binding Result}">
<TextBlock.Style>
<Style TargetType="TextBlock">
<Style.Triggers>
<DataTrigger Binding="{Binding Result}" Value="Pass">
<Setter Property="Foreground" Value="Green" />
</DataTrigger>
<DataTrigger Binding="{Binding Result}" Value="Fail">
<Setter Property="Foreground" Value="Red" />
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
В качестве альтернативы вы можете создать IValueConverter реализацию, которая преобразует строки в кисти (в соответствии с вашими правилами) и напрямую использует привязку:
<TextBlock
Text="{Binding Result}"
Foreground="{Binding Result,Converter={StaticResource my:ResultBrushConverter}} />
Я не буду вдаваться в подробности этого параметра, потому что считаю, что вариант с чистым XAML - лучший путь.