Does anyone have a tactic for dealing with multiple validation rules and templates for those validation rules.
Example:
I want to have two validation rules (required & data)
I want either...
One template that can change is display depending on which rule is fired or Two templates, which get displayed depending on which rule is fired
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!