Как использовать IDataErrorInfo.Error в программе WPF?

У меня есть такой объект:

public class Person : IDataErrorInfo { public string PersonName{get;set;} public int Age{get;set;} string IDataErrorInfo.this[string propertyName] { get { if(propertyName=="PersonName") { if(PersonName.Length>30 || PersonName.Length<1) { return "Name is required and less than 30 characters."; } } return null; } } string IDataErrorInfo.Error { get { if(PersonName=="Tom" && Age!=30) { return "Tom must be 30."; } return null; } } } 

Связать свойства PersonName и Age легко:

   

Однако как я могу использовать свойство Error и показать его соответствующим образом?

Вот пример, адаптированный из этого вопроса , который показывает, как отображать ошибку в Tooltip:

      

Вы должны изменить стиль TextBox, чтобы он показывал, что не так с этим свойством. Вот простой пример, показывающий ошибку как подсказку:

  

Просто поместите его в Application.Resources из файла app.xaml, и он будет использоваться для каждого текстового поля вашего приложения:

    
  • В чем разница между свойством Property и Dependency Property
  • Установите элемент управления веб-браузером WPF для использования режима IE10
  • Как использовать значок, который является ресурсом в WPF?
  • Как настроить привязку ширины столбца ColumnDefinition или RowDefinition?
  • Применение инсульта к текстовому блоку в WPF
  • программно добавлять столбцы и строки в WPF Datagrid
  • Назначить BitmapImage из Resource.resx в Image.Source?
  • Как я могу создать границу и строку заголовка windows в WPF?
  • Установите фокус на текстовое поле в WPF
  • Ширина столбца DataGrid не обновляется автоматически
  • Как перетащить UserControl внутри canvasа
  • Interesting Posts

    «Ручная резьба» в Thunderbird?

    Удалить настройку из стиля, чтобы наследовать настройку из базового стиля

    Удаленный рабочий стол нажатием клавиши Windows случайным образом

    Как отправить простую электронную почту программно? (существует простой способ сделать это?)

    Понять class R в Android

    Как проверить соответствие даты в Java

    С Rails 4 Model.scoped устарел, но Model.all не может его заменить

    Как я могу постоянно указывать Windows7 по умолчанию мои пользовательские данные, такие как библиотеки, кроме загрузочного диска?

    09 не распознается, где 9 признано

    Лучший способ разрешить путь к файлу слишком долгое исключение

    Правильный способ (в .NET) переключить фокус на другое приложение

    Как добавить коллекцию коллекций apache в Android Studio (Gradle)

    Должен ли я избегать использования методов set (Preferred | Maximum | Minimum) в Java Swing?

    C #, регулярные выражения: как анализировать значения, разделенные запятыми, где некоторые значения могут быть указаны как строки, содержащие запятые

    Как работает экзистенциальный оператор CoffeeScript?

    Давайте будем гением компьютера.