Я использую блок проверки EntLib 6 с интеграцией WPF. Простой недвижимости в моей виртуальной машине:Получить результаты проверки
[StringLengthValidator(3, MessageTemplate = "Shorten me!")]
public String SomeText
{
get { return _someText; }
set
{
_someText = value;
OnPropertyChanged("SomeText");
}
}
И соответствующий Binding к TextBox:
<TextBox ToolTip="{Binding (Validation.Errors).CurrentItem.ErrorContent, RelativeSource={x:Static RelativeSource.Self}}"
Text="{Binding SomeText, UpdateSourceTrigger=PropertyChanged}"
vab:Validate.BindingForProperty="Text"/>
Если ввести более трех символов в TextBox значение отвергается и последний действующий один сохраняются. TextBox выделяется красным цветом, и соответствующее сообщение отображается как ToolTip.
Внутри виртуальной машины я хотел бы проверить, есть ли какие-либо ошибки проверки - но поскольку значение отклонено в представлении, все кажется прекрасным. Итак, как мне определить, была ли ошибка проверки?
ВНИМАНИЕ: VAB НЕ использовать IDataErrorInfo интерфейс!
vab запрещает привязку передавать недействительные значения виртуальной машине - независимо от того, включена ли функция ValidatesOnDataErrors – Jaster