К сожалению, это исключение и его сообщение происходят глубоко внутри кода платформы и не могут быть просто заменены. Но одну вещь, которую вы можете сделать, это полностью обойти это исключение, написав свой ValidationRule
. Например:
public class Int32ValidationRule : ValidationRule
{
public override ValidationResult Validate(object value, CultureInfo cultureInfo)
{
if (string.IsNullOrEmpty((string)value))
return ValidationResult.ValidResult;
int number;
return int.TryParse(value.ToString(), out number)
? ValidationResult.ValidResult
: new ValidationResult(false, "Please enter a valid integer");
}
}
Конечно, ядерная опция заключается в том, чтобы превратить CertainProperty
в string
и позволить вашей модели или модели представления проверить его с помощью IDataErrorInfo
, но это будет серьезным изменением по сравнению с существующим кодом.