Получить UserControl или VisualTree в DataValidation TextBlock - PullRequest
2 голосов
/ 07 мая 2009

У меня установлен валидатор для свойства text текстового блока. Для корректной проверки мне понадобится родительский пользовательский контроль над текстовым блоком, но единственные вещи, которые у меня есть в валидаторе, это объект значения (строка) и культура (тоже не помогает).

Кто-нибудь знает способ получить определенные пользовательские элементы управления в классе / методе, где у меня нет доступа к каким-либо визуальным элементам или элементам управления моего приложения.

Проблема могла бы быть решена, если бы я мог предоставить валидатору usercontrol или текстовый блок в качестве параметров, но я не нашел способа сделать это ..

1 Ответ

1 голос
/ 07 мая 2009

Вы можете попробовать проверить, используя два свойства проверки, встроенные в класс Binding: ValidatesOnExceptions и ValidatesOnDataErrors.

При ValidatesOnExceptions привязка недействительна, если в процессе преобразования возникает исключение. В этом случае вы можете создать пользовательский конвертер, передать пользовательский элемент управления в качестве параметра, а затем вызвать исключение в конвертере, если привязка недействительна.

<Binding ValidatesOnExceptions="True"/>

При ValidatesOnDataErrors привязка недействительна, если источник реализует IDataErrorInfo и возвращает непустую / пустую строку для свойства IDataErrorInfo.Error. Если ваш источник реализует или может реализовать этот интерфейс, вы можете проверить данные на стороне источника.

<Binding ValidatesOnDataErrors="True"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...