У меня есть текстовое поле, привязанное к классу со свойством типа Timespan, и я написал преобразователь значений для преобразования строки в TimeSpan.
] Если в текстовое поле введено не число, я бы хотел, чтобы отображалось собственное сообщение об ошибке (вместо стандартного «строка ввода в неправильном формате»).
Код конвертера:
public object ConvertBack(
object value,
Type targetType,
object parameter,
CultureInfo culture)
{
try
{
int minutes = System.Convert.ToInt32(value);
return new TimeSpan(0, minutes, 0);
}
catch
{
throw new FormatException("Please enter a number");
}
}
У меня установите ValidatesOnExceptions = True в привязке XAML.
Однако я наткнулся на следующую статью MSDN, в которой объясняется, почему вышеуказанное не будет работать:
«Механизм привязки данных не улавливает исключения, которые генерируются предоставленный пользователем преобразователь. Любое исключение, генерируемое методом Convert, или любые неперехваченные исключения, генерируемые методами, которые вызывает метод Convert, обрабатываются как ошибки времени выполнения »
Я читал, что« ValidatesOnExceptions перехватывает исключения в TypeConverters, поэтому мои конкретные вопросы: