Multiple Validation Rules and Validation Templates in WPF

Solution 1:

I've figured out an approach that works and I was hoping to get feedback from anyone that might have an interest in this.

ValidationRule:

My validation rule is altered to send back an "ErrorObject" that has IsRequired & Message properties:

public class ErrorObject
{
    public bool IsRequired { get; set; }
    public string Message { get; set; }
}

// ...
    
return new ValidationResult(false, new ErrorObject() { IsRequired = true, Message = "Is Required" });

Template:

In the Validation Template I can now access these properties and alter the visual accordingly. (In this example I'm showing an * for required fields)

<Border
    BorderBrush="Red"
    CornerRadius="3"
    BorderThickness="1">
    <AdornedElementPlaceholder
        x:Name="errorAdorner" />
</Border>
<TextBlock
    Text="*"
    Foreground="Red"
    Visibility="{Binding ElementName=errorAdorner,
                 Path=AdornedElement.(Validation.Errors).CurrentItem.ErrorContent.IsRequired,
                 Converter={StaticResource BooleanToVisibilityConverter}}" />

So this is a simple example, but you can imagine that this can get very powerful. Thanks to Microsoft for letting us send back an object!