У меня есть проблема с проверкой в WPF, которую я не могу решить.У меня есть класс (который реализует IDataErrorInfo), который использует свойство как-то.
private double? _SizeSearchValue;
public double? SizeSearchValue
{
get { return _SizeSearchValue; }
set
{
_SizeSearchValue = value;
NotifyChange("SizeSearchValue");
ValidateInputRow("SizeSearchValue");
}
}
Он связан с текстовым полем в XAML, как это.
<StackPanel Orientation="Horizontal">
<TextBlock VerticalAlignment="Center" Text="Size:"/>
<ComboBox Text="{Binding SizeSearchOption, ValidatesOnDataErrors=True}"/>
<TextBox Text="{Binding SizeSearchValue, ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged, ValidatesOnExceptions=False}"/>
</StackPanel>
ValidateInputRow ()Функция в установщике свойств обычно проходит и запускает мои пользовательские процедуры проверки и соответственно устанавливает ошибки, чтобы ComboBox и TextBox в упомянутом выше StackPanel имели красную рамку.Все работает отлично, пока я не помещу нечисловую строку в текстовое поле (например, «Abc»).
При вводе строки привязка выполняет проверку по умолчанию, вызывается FormatException и текстовое поле получает красную рамкупо обыкновению.Моя проблема с этим заключается в том, что моя пользовательская процедура проверки никогда не запустится, потому что установщик свойств в моем классе никогда не вызывается.
Я понимаю, почему это происходит, но мне было интересно, знает ли кто-нибудь способ перехватить событие или обидчивое исключение FormatException, чтобы я мог запустить свою пользовательскую проверку по факту.Я не могу понять это.