008. Avalonia UI - View Model Basics MVVM
Описание
00:00 Введение в модели просмотра
• Необходимость добавления моделей просмотра для управления анимацией и выбором действий.
• Объяснение работы MVVM: представление, модель представления, модель.
• Привязка данных в Avalonia через контекст данных окна.
00:52 Принцип работы привязки данных
• Привязка ищет данные в объекте контекста данных окна.
• ViewModel уведомляет представление об изменениях через функцию notify property changed.
• Примеры использования реактивного пользовательского интерфейса.
01:32 Дополнительные возможности привязки
• Привязка к другим элементам управления через хэштеги.
• Привязка к предкам с помощью CSS-селекторов.
• Особенности привязки в Avalonia.
03:28 Начало работы с моделями просмотра
• Замена заголовка «Авалония» и «Измеритель громкости» на реальный текст в ViewModel.
• Удаление существующих моделей представления для начала с нуля.
• Определение типа приложения при запуске для выбора главного окна или основного вида.
05:11 Создание основной модели представления
• Создание класса MainViewModel.
• Проверка функции определения вида и её возможное использование.
• Компиляция и запуск приложения.
06:09 Работа с контекстом данных
• Установка контекста данных для основного представления.
• Каждый элемент пользовательского интерфейса имеет контекст данных.
• Пример привязки свойства к метке.
07:51 Обновление данных в реальном времени
• Создание свойства bold title в MainViewModel.
• Установка точки останова для отслеживания изменений.
• Обновление данных при первом появлении представления.
09:51 Простота установки контекста данных
• Демонстрация простоты установки контекста данных для объекта.
• Возможность работы без использования фреймворка.
• Важность правильного указания пути к свойствам модели представления.
10:43 Обновление свойств
• Использование get и set для обновления свойств.
• Установка значения по умолчанию и его проверка.
• Проверка обновления данных при установке свойства.
11:20 Введение в MVVM
• MVVM Model-View-ViewModel: модель содержит данные, представление отображает данные, ViewModel связывает модель с представлением.
• ViewModel автоматически обновляет представление при изменении данных.
11:58 Обновление представления через ViewModel
• Представление отслеживает события в ViewModel для обновления данных.
• Наследование от интерфейса INotifyPropertyChanged позволяет ViewModel уведомлять представление об изменениях.
12:31 Реализация интерфейса INotifyPropertyChanged
• При реализации интерфейса появляется новое свойство changed и обработчик событий.
• Avalonia автоматически связывает представление с событием изменения свойств.
13:18 Принудительное обновление представления
• Для принудительного обновления представления используется свойство changed.
• Пример с заголовком, выделенным жирным шрифтом, демонстрирует работу привязки MVVM.
15:56 Проблемы ручного управления свойствами
• Ручное управление свойствами требует много шаблонного кода.
• Необходимо реализовывать получатель и установщик для каждого свойства.
17:02 Автоматизация с помощью инструментария MVVM
• Инструментарий MVVM автоматически генерирует код для свойств и коллекций.
• Изменение класса ViewModel на ObservableObject позволяет использовать инструментарий.
19:13 Использование сгенерированных свойств
• Сгенерированные свойства автоматически реализуют INotifyPropertyChanged.
• Важно использовать правильные имена свойств для корректной работы.
20:29 Проверка работы модели представления
• Проверка работы модели представления показывает, что изменения свойств автоматически обновляются в представлении.
21:22 Расширение модели представления
• Создание дополнительных свойств для привязки к разным элементам управления.
• Пример с метками и обновлением заголовков демонстрирует гибкость модели представления.
22:25 Введение в viewmodels
• Модель представления проста: два свойства с метками observable.
• Модель представления привязывается к версиям этих свойств в верхнем регистре.
• Суть MVVM: изменение значений в классе автоматически запускает события, сообщающие представлению о новых значениях.
• Отделение viewmodel от представления и данных от конструкций, специфичных для представления.
23:20 Преимущества viewmodels
• Возможность изменения нижних кнопок и стрелок в зависимости от свойств представления, связанных с viewmodel.
• Завершение видео и обещание увидеться в следующий раз.
Рекомендуемые видео




















