Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю. Страница 21
Программное инспектирование визуального дерева
Программное инспектирование стандартного шаблона элемента управления
Построение шаблона элемента управления с помощью инфраструктуры триггеров
Шаблоны как ресурсы
Встраивание визуальных подсказок с использованием триггеров
Роль расширения разметки {TemplateBinding}
Роль класса ContentPresenter
Встраивание шаблонов в стили
Резюме
Глава 28
Введение в паттерн MWM
Модель
Представление
Модель представления
Анемичные модели или анемичные модели представлений
Система уведомлений привязки WPF
Наблюдаемые модели и коллекции
Добавление привязок и данных
Изменение данных об автомобиле в коде
Наблюдаемые модели
Использование операции nameof
Наблюдаемые коллекции
Использование класса ObservableCollection<T>
Реализация флага изменения
Обновление источника через взаимодействие с пользовательским интерфейсом
Итоговые сведения об уведомлениях и наблюдаемых моделях
Проверка достоверности WPF
Модификация примера для демонстрации проверки достоверности
Класс Validation
Варианты проверки достоверности
Уведомление по исключениям
Интерфейс IDataErrorInfo
Интерфейс INotifyDataErrorInfo
Реализация поддерживающего кода
Использование интерфейса INotifyDataErrorInfo для проверки достоверности
Комбинирование IDataErrorInfo С INotifyDataErrorInfo для проверки достоверности
Отображение всех ошибок
Перемещение поддерживающего кода в базовый класс
Использование аннотаций данных в WPF
Добавление аннотаций данных к модели
Контроль ошибок проверки достоверности на основе аннотаций данных
Настройка свойства ErrorTemplate
Итоговые сведения о проверке достоверности
Создание специальных команд
Реализация интерфейса ICommand
Добавление класса ChangeColorCommand
Присоединение команды к CommandManager
Изменение файла MainWindow.xaml.cs
Изменение файла MainWindow.xaml
Тестирование приложения
Создание класса CommandBase
Добавление класса AddCarCommand
Изменение файла MainWindow.xaml.cs
Изменение файла MainWindow.xaml
Изменение класса ChangeColorCommand
Объекты RelayCommand
Создание базового класса RelayCommand
Создание класса RelayCommand<T>
Изменение файла MainWindow.xaml.cs
Добавление и реализация кнопки удаления записи об автомобиле
Итоговые сведения о командах
Перенос кода и данных в модель представления