Если у меня есть элемент управления WPF, связанный с источником данных, и для ValidatesOnExceptions установлено значение true для объекта Binding.Теперь, если я напишу в элементе управления что-то, что не может быть преобразовано в тип данных источника, я получу ошибку проверки и красную рамку для моего элемента управления.
Но если я установлю несовместимое значение в источнике,исключение автоматически перехватывается в привязке и возвращается значение по умолчанию.Нет указаний на то, что значение в элементе управления нельзя доверять из-за ошибки привязки.
Как я могу визуализировать проблемы привязки для пользователя , независимо от того, какая сторона является причинойЭто?Я хочу, чтобы пользователь знал, что значение в элементе управления не является надежным.
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ:
Это то, что у меня есть в след.Это говорит мне, что OverflowException генерируется во время преобразования (потому что 99999 не вписывается в Int16).Тогда он просто использует 0 вместо 99999 при установке значения на цель.Это нормально, я не ожидаю, что это сделает невозможное.Проблема в том, что это не дает мне возможности действовать на ошибку , и нет ошибок для проверки.
Получено событие PropertyChanged из DataClass (hash = 2616333)
GetValue на уровне 0 из DataClass (хэш = 2616333) с использованием RuntimePropertyInfo (Int32): '99999'
TransferValue - получено необработанное значение '99999'
В mscorlib возникла исключительная ситуация первого типа типа System.OverflowException.dll System.Windows.Data Ошибка: 6: преобразователю «SystemConvertConverter» не удалось преобразовать значение «99999» (тип «Int32»);будет использоваться запасное значение, если оно доступно.BindingExpression: Path = Int32;DataItem = 'DataClass' (HashCode = 2616333);целевой элемент - «AliasClass» (HashCode = 32866918);Свойство target - Int16 (тип Int16). OverflowException: 'System.OverflowException: значение было слишком большим или слишком маленьким для Int16.
TransferValue - неявный преобразователь, созданный {DependencyProperty.UnsetValue}
TransferValue - использованиеотступление / значение по умолчанию '0'
TransferValue - использование окончательного значения '0'