Binding to double may produce following validation error
Value ... could not be converted.
When using ExceptionValidationRule errors are more talkative:
Input string was not in a correct format.
Value was either too big or too small for a ...
Perhaps there are more. Add to them those what I can throw myself in bound property setter.
Now, I want to localize those messages (preferably second version). Not a big surprise, but sources doesn't reveal anything useful (am I looking at wrong place?).
I can make my own validation rules, but perhaps there is an easier way?
My question: can I localize ExceptionValidationRule?
Below is mcve:
xaml:
<TextBox>
    <TextBox.Text>
        <Binding Path="TestDouble" UpdateSourceTrigger="PropertyChanged">
            <Binding.ValidationRules>
                <!--<local:MyValidationRule />-->
                <!--<ExceptionValidationRule />-->
            </Binding.ValidationRules>
        </Binding>
    </TextBox.Text>
    <Validation.ErrorTemplate>
        <ControlTemplate>
            <TextBlock Margin="0,20,0,0" Foreground="Red" Text="{Binding ErrorContent}" />
        </ControlTemplate>
    </Validation.ErrorTemplate>
</TextBox>
cs:
public partial class MainWindow : Window
{
    public double TestDouble { get; set; }
    public MainWindow()
    {
        InitializeComponent();
        DataContext = this;
    }
}
public class MyValidationRule : ValidationRule
{
    public override ValidationResult Validate(object value, CultureInfo cultureInfo) => ValidationResult.ValidResult; // not used
    public override ValidationResult Validate(object value, CultureInfo cultureInfo, BindingExpressionBase owner)
    {
        var bindingExpression = owner as BindingExpression;
        if (bindingExpression != null)
        {
            var type = bindingExpression.ResolvedSource.GetType().GetProperty(bindingExpression.ResolvedSourcePropertyName).PropertyType;
            if (type == typeof(double))
            {
                double result;
                if (!double.TryParse((string)value, out result))
                    return new ValidationResult(false, "The value format is not recognized"); // custom message
            }
            ... // and so on, for all types ?????
        }
        return base.Validate(value, cultureInfo, owner);
    }
}


 
    