Реализация проверки для всех текстовых полей WPF - PullRequest
0 голосов
/ 13 марта 2019

В моей программе есть десятки TextBox, которые могут использовать одно общее правило валидации. Само правило не очень сложное: оно только предотвратит использование точки с запятой (;).

Существует ли какой-либо способ его реализации (проще, чем применять одно и то же правило вручную ко всем текстовым полям)?

Редактировать: я не вижу, как это может быть связано с Как использовать IDataErrorInfo.Error в программе WPF? - У меня нет проблем с применением проверки к TextBox (или отображением ошибки во всплывающей подсказке) ).

1 Ответ

0 голосов
/ 14 марта 2019

Вы можете написать собственное расширение разметки, которое расширяет Binding и добавляет ValidationRule:

public class CustomBinding : Binding
{
    public CustomBinding(string path)
        : base(path)
    {
        this.ValidationRules.Add(new YourValidationRule())
    }
}

. Затем вы будете использовать это вместо обычного {Binding} при настройке привязок.в XAML, например:

<TextBox Text="{local:CustomBinding SourceProperty}" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...