Есть ли способ добавить пользовательские ошибки проверки в список ошибок управления? Я знаю, как использовать IDataErrorInfo, INotifyErrorInfo, ValidationAttribute и т. Д., Но я хотел бы добавить собственные ошибки проверки из кода.Добавить пользовательские ошибки проверки в Silverlight
0
A
ответ
0
Найден способ:
Во-первых, создать общественный класс для затаив сообщение об ошибке:
общественного класса TagModelError { частные чтения Строка ErrorMessage;
public TagModelError(String errorMessage) { this.errorMessage = errorMessage; } public Object Tag { get { return new Object(); } set { throw new ValidationException(this.errorMessage); } } }
Далее создайте вспомогательный метод:
государственной статической силы AddValidationError (этот элемент управления, String ErrorMessage) { выражение вар = elm.GetBindingExpression (FrameworkElement.TagProperty);
if (expression == null) { expression = control.SetBinding(FrameworkElement.TagProperty, new Binding("Tag") { Mode = BindingMode.TwoWay, ValidatesOnExceptions = true, UpdateSourceTrigger = UpdateSourceTrigger.Explicit, Source = new TagModelError(errorMessage) }) as BindingExpression; } expression.UpdateSource(); }
Я использую Tag свойство, потому что это редко требуется, но вы можете использовать любой другой. Трюк здесь заключается в том, чтобы вызвать исключение при обращении к модели.
Невозможно форматировать код ... –