В моей программе есть десятки текстовых полей, и все они могут использовать одно общее правило проверки. Само правило не очень сложное: оно только предотвратило бы использование точки с запятой (;).
Существует ли какой-либо способ его реализации (более простой, чем применение одного и того же правила вручную ко всем текстовым полям)?
Обновлено: я не понимаю, как это может быть связано с Как использовать IDataErrorInfo.Error в программе WPF? - у меня нет проблем с применением проверки к текстовому полю (или отображением ошибки во всплывающей подсказке).
Реализуйте для этого собственное поведение, просто наследуйте класс Behavior<TextBlock>
Возможный дубликат Как использовать IDataErrorInfo.Error в программе WPF?





Вы можете написать собственное расширение разметки, которое расширяет Binding и добавляет ValidationRule:
public class CustomBinding : Binding
{
public CustomBinding(string path)
: base(path)
{
this.ValidationRules.Add(new YourValidationRule())
}
}
Затем вы должны использовать его вместо обычного {Binding} при настройке привязок в XAML, например:
<TextBox Text = "{local:CustomBinding SourceProperty}" />
@Alex: Вы пробовали это?
Кажется, невозможно создать то, что я прошу, без некоторых дополнений к XAML текстовых полей. Похоже, это самое простое решение, я попробую. Спасибо!
вы можете не объявлять их явно, а вставлять в список. Затем проверку можно применить ко всему списку.