Программная принудительная проверка в Silverlight 3 UIElement (текстовое поле) - PullRequest
1 голос
/ 23 июня 2011

Легко ли программно принудительно проверить элемент в Silverlight 3?

У меня есть текстовое поле, к которому я привязываю Silverlight.Validators.RegexValidator, к сожалению, валидатор проверяет содержимое другого элемента (combobox). Обычно onSelectionChanged для этого комбинированного списка - его выбранный элемент устанавливается в валидаторе, и когда содержимое текстового поля изменяется (нажатие клавиши), оно проверяет это.

Но я также хочу снова выполнить ту же проверку при изменении выбора в выпадающем списке

Могу ли я сделать что-то вроде myTextBox.Validate(); или даже что-то вроде myTextBox.KeyUp() для принудительной проверки?

Спасибо

Ответы [ 2 ]

1 голос
/ 23 июня 2011

Предполагая, что ваше свойство TextBox.Text привязано к какому-либо свойству, вы можете заставить привязку обновить источник, что должно привести к проверке.

var bindingExpression = textBox.GetBindingExpression(TextBox.TextProperty);
bindingExpression.UpdateSource();
0 голосов
/ 23 августа 2013

Похоже, вы используете этот инструментарий вместо встроенной системы проверки привязки.Согласно ValidatorBase , кажется, вам следует вызвать Validate(true) для вашего объекта валидатора.

Я настоятельно рекомендую вам перейти к официальной поддержке проверки данных Silverlight что гораздо надежнее, чем простая проверка TextBox.Text в KeyUp.Для проверки регулярных выражений вы можете применить RegularExpressionAttribute к свойству, к которому привязан TextBox.После настройки проверки привязки ответ Ed Chapel будет работать для вас.Также вероятно, что Silverlight автоматически запросит проверку, и вам вообще не потребуется обрабатывать SelectionChanged.

...