Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
<ListBox ItemsSource="{Binding Path=ErrorContent}"/>
</DataTemplate>
</ListBox.ItemTemplate>
Запустите приложение, выберите автомобиль
Chevy
Pink

Мы лишь слегка коснулись поверхности того, что можно делать при проверке достоверности и отображении сообщений об ошибках, но представленных сведений должно быть вполне достаточно для выработки вами способа разработки информативных пользовательских интерфейсов, которые улучшают восприятие.
Перемещение поддерживающего кода в базовый класс
Вероятно, вы заметили, что в настоящий момент в классе
CarPartial
Создайте в папке
Models
BaseEntity.cs
using
System.Collections
System.ComponentModel
INotifyDataErrorInfor
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
namespace Validations.Models
{
public class BaseEntity : INotifyDataErrorInfo
}
Переместите в новый базовый класс весь код, относящийся к
INofityDataErrorInfo
CarPartial.cs
INotifyDataErrorInfo
CarPartial.cs
BaseEntity
public partial class Car : BaseEntity, IDataErrorInfo
{
// Для краткости код не показан.
}
Теперь любые создаваемые классы моделей будут наследовать весь связующий код
INotifyDataErrorInfo
Использование аннотаций данных в WPF
Для проверки достоверности в пользовательских интерфейсах инфраструктура WPF способна также задействовать аннотации данных. Давайте добавим несколько аннотаций данных к модели
Car
Добавление аннотаций данных к модели
Откройте файл
Car.cs
using
System.ComponentModel.DataAnnotations
Make
Color
PetName
[Required]
[StringLength(50)]
[Required]
null
Id
int
null
[StringLength(50)]
Контроль ошибок проверки достоверности на основе аннотаций данных
В WPF вы должны программно контролировать наличие ошибок проверки достоверности на основе аннотаций данных. Двумя основными классами, отвечающими за проверку достоверности на основе аннотаций данных, являются
ValidationContext
Validator
ValidationContext
Validator
ValidationContext
Откройте файл
BaseEntity.cs
using
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
Далее создайте новый метод по имени
GetErrorsFromAnnotations()
Т
protected
protected string[] GetErrorsFromAnnotations<T>(
string propertyName, T value)
{}
Внутри метода
GetErrorsFromAnnotations()
List<ValidationResult>
ValidationContext
Validate.TryValidateProperty()
bool
true
false
List<ValidationResult>