Хорошо, поэтому я нашел подход, который работает, и я надеялся получить обратную связь от любого, кто мог бы заинтересоваться этим.
ValidationRule:
Мое правило проверки изменено для отправки «ErrorObject» со свойствами IsRequired и Message
public class ErrorObject
{
public bool IsRequired { get; set; }
public string Message { get; set; }
}
....
return new ValidationResult(false, new ErrorObject() { IsRequired = true, Message = "Is Required" });
Шаблон:
В шаблоне проверки теперь я могу получить доступ к этим свойствам и соответственно изменить визуальный элемент. (В этом примере я показываю * для обязательных полей)
<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}}" />
Так что это простой пример, но вы можете себе представить, что это может стать очень мощным. Спасибо MS, что разрешили отправить обратно объект !!!