You can use triggers inside a style:
<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>
Alternatively you could create an IValueConverter implementation which converts strings to brushes (according to your rules) and use a binding directly:
<TextBlock
Text="{Binding Result}"
Foreground="{Binding Result,Converter={StaticResource my:ResultBrushConverter}} />
I won't go into details for this option because I think the pure-XAML option is the better way to go.