20. Avalonia UI Real World (How View Model Binding Works)

00:00 Введение • Приложение успешно работает, функция просмотра действий при печати реализована. • Зрители просят больше объяснений работы моделей просмотра и обновления пользовательского интерфейса. • Рассматриваются модели просмотра страниц, база моделей просмотра и использование платформы Community MVVM. 00:29 Создание новой viewmodel • Объяснение работы наблюдаемого свойства и создание собственной viewmodel с нуля. • Удаление существующего представления и добавление ярлыка с содержанием. • Создание нового класса MyViewModel с общедоступной строкой mystring. 01:30 Привязка viewmodel к приложению • Привязка MyViewModel к главному окну приложения. • Изменение контекста данных для выполнения привязки. • Создание типа данных виртуальной машины MyViewModel. 02:18 Проблема обновления данных • Демонстрация проблемы обновления данных при изменении строки. • Использование асинхронного запуска для имитации изменения данных. • Ожидание трёх секунд перед обновлением строки. 03:11 Решение проблемы с помощью MVVM • Объяснение работы MVVM и прослушивания изменений свойств. • Наследование от интерфейса INotifyPropertyChanged для реализации события property changed. • Подключение представления к событию property changed. 04:30 Реализация события property changed • Добавление обработчика события property changed в MyViewModel. • Обновление строки и проверка обновления представления. 05:54 Отладка и демонстрация работы • Извлечение данных и настройка свойств для отладки. • Запуск приложения и наблюдение за обновлением строки. • Подключение представления к модели представления для демонстрации работы. 09:13 Автоматизация процесса • Перемещение события property changed внутрь установщика свойства. • Проверка работы автоматизации обновления. 09:40 Использование ObservableObject • Замена INotifyPropertyChanged на ObservableObject для автоматизации процесса. • Автоматическое генерирование кода для уведомления об изменениях свойств. • Частичное изменение кода для корректной работы ObservableObject. 10:26 Генератор наблюдаемых свойств • В проекте .NET 9 есть генератор наблюдаемых свойств. • Он автоматически генерирует код для свойств, включая геттеры и сеттеры. • Сеттер выполняет дополнительные вызовы при изменении свойства. 11:10 Работа с наблюдаемыми свойствами • Платформа сообщества добавляет дополнительные вызовы для обновления пользовательского интерфейса. • Вместо написания кода вручную можно использовать автоматически сгенерированные методы. 12:18 Пример с списком • Создание общедоступного списка строк и его привязка к элементу управления. • Проблема: список не обновляется при добавлении нового элемента. • Решение: использование наблюдаемой коллекции для обновления списка. 13:36 Наблюдаемая коллекция • Замена списка на наблюдаемую коллекцию решает проблему обновления. • Наблюдаемая коллекция обновляет пользовательский интерфейс при добавлении, удалении или изменении элементов. 14:39 Принцип работы viewmodels • Viewmodels используют интерфейс INotifyCollection для обновления представлений. • Представление подключается к событиям обратного вызова, сообщающим об обновлении свойств. • Это позволяет viewmodels эффективно обновлять пользовательский интерфейс.

Иконка канала Ленинский Букварь
239 подписчиков
12+
6 просмотров
4 дня назад
12+
6 просмотров
4 дня назад

00:00 Введение • Приложение успешно работает, функция просмотра действий при печати реализована. • Зрители просят больше объяснений работы моделей просмотра и обновления пользовательского интерфейса. • Рассматриваются модели просмотра страниц, база моделей просмотра и использование платформы Community MVVM. 00:29 Создание новой viewmodel • Объяснение работы наблюдаемого свойства и создание собственной viewmodel с нуля. • Удаление существующего представления и добавление ярлыка с содержанием. • Создание нового класса MyViewModel с общедоступной строкой mystring. 01:30 Привязка viewmodel к приложению • Привязка MyViewModel к главному окну приложения. • Изменение контекста данных для выполнения привязки. • Создание типа данных виртуальной машины MyViewModel. 02:18 Проблема обновления данных • Демонстрация проблемы обновления данных при изменении строки. • Использование асинхронного запуска для имитации изменения данных. • Ожидание трёх секунд перед обновлением строки. 03:11 Решение проблемы с помощью MVVM • Объяснение работы MVVM и прослушивания изменений свойств. • Наследование от интерфейса INotifyPropertyChanged для реализации события property changed. • Подключение представления к событию property changed. 04:30 Реализация события property changed • Добавление обработчика события property changed в MyViewModel. • Обновление строки и проверка обновления представления. 05:54 Отладка и демонстрация работы • Извлечение данных и настройка свойств для отладки. • Запуск приложения и наблюдение за обновлением строки. • Подключение представления к модели представления для демонстрации работы. 09:13 Автоматизация процесса • Перемещение события property changed внутрь установщика свойства. • Проверка работы автоматизации обновления. 09:40 Использование ObservableObject • Замена INotifyPropertyChanged на ObservableObject для автоматизации процесса. • Автоматическое генерирование кода для уведомления об изменениях свойств. • Частичное изменение кода для корректной работы ObservableObject. 10:26 Генератор наблюдаемых свойств • В проекте .NET 9 есть генератор наблюдаемых свойств. • Он автоматически генерирует код для свойств, включая геттеры и сеттеры. • Сеттер выполняет дополнительные вызовы при изменении свойства. 11:10 Работа с наблюдаемыми свойствами • Платформа сообщества добавляет дополнительные вызовы для обновления пользовательского интерфейса. • Вместо написания кода вручную можно использовать автоматически сгенерированные методы. 12:18 Пример с списком • Создание общедоступного списка строк и его привязка к элементу управления. • Проблема: список не обновляется при добавлении нового элемента. • Решение: использование наблюдаемой коллекции для обновления списка. 13:36 Наблюдаемая коллекция • Замена списка на наблюдаемую коллекцию решает проблему обновления. • Наблюдаемая коллекция обновляет пользовательский интерфейс при добавлении, удалении или изменении элементов. 14:39 Принцип работы viewmodels • Viewmodels используют интерфейс INotifyCollection для обновления представлений. • Представление подключается к событиям обратного вызова, сообщающим об обновлении свойств. • Это позволяет viewmodels эффективно обновлять пользовательский интерфейс.

, чтобы оставлять комментарии