24. Avalonia UI Real World (Passing Data Between Pages)
00:00 Введение в проблему • Обсуждение использования продвинутой навигации по страницам. • Проблема передачи данных между страницами. • Пример с установкой подзаголовка на нижней странице. 00:56 Текущий подход к навигации • Использование модели просмотра страницы для вызова перехода. • Ограничения текущего подхода: невозможность передачи данных или изменения формата страницы. 01:51 Неэффективный метод решения • Описание неэффективного метода изменения подзаголовка. • Необходимость более чистого способа решения проблемы. 02:12 Создание конструктора по умолчанию • Создание конструктора по умолчанию для пользовательского интерфейса. • Определение места внесения изменений в модели главного вида. 03:06 Рефакторинг фабрики страниц • Удаление дженериков и возвращение к исходной реализации фабрики страниц. • Добавление возможности редактирования viewmodel после её генерации. 04:42 Реализация редактирования viewmodel • Использование функции «после сотворения мира» для редактирования viewmodel. • Пример изменения подзаголовка в функции «после сотворения». 05:57 Ограничения текущего подхода • Проблема доступа только к модели просмотра страницы, а не к конкретной viewmodel. • Необходимость введения типа для изменения конкретной viewmodel. 06:49 Введение типа в фабрику страниц • Передача типа модели представления вместо перечисления имён страниц. • Проверка типа передаваемого объекта и ограничение вызовов get page view model. 08:06 Обновление логики фабрики страниц • Обновление логики фабрики страниц для работы с типами моделей представления. • Обработка ошибок при несоответствии типа. 10:17 Завершение рефакторинга • Обновление способа внедрения сервисов. • Сложности, связанные с использованием типов в коде. 11:03 Использование правила перехвата • Правило перехвата по умолчанию позволяет обрабатывать типы с определённым видом. • Подчёркивание и дополнительный выбор помогают указать, где именно применять правило. • Сокращённый вариант заменяет анализ «если» и делает код чище. 11:37 Копирование и создание нового переплета • Копирование правила позволяет создать новый переплет. 11:48 Запуск и проверка работы • После запуска всё должно работать в полном объёме. • Новый способ управления навигацией по страницам позволяет вводить любые данные. • После создания появляется новая страница, и всё остальное перемещается по ней. 12:02 Проверка модели просмотра страницы • Необходимо убедиться, что вызов get page view не выполняется для модели, не являющейся моделью просмотра страницы. • Предложение where ограничивает универсальность, требуя использования модели просмотра страниц. • Изменения минимальны, приложение использует новый синтаксис для поиска правильной viewmodel. 12:42 Реализация в пакетном режиме • Основная модель представления требует изменения синтаксиса, который может быть сложным для некоторых. • Реализация в пакетном режиме позволяет сохранить формат и обрабатывать данные после создания. • В следующем видео будет показана фабрика страниц в новом стиле.
00:00 Введение в проблему • Обсуждение использования продвинутой навигации по страницам. • Проблема передачи данных между страницами. • Пример с установкой подзаголовка на нижней странице. 00:56 Текущий подход к навигации • Использование модели просмотра страницы для вызова перехода. • Ограничения текущего подхода: невозможность передачи данных или изменения формата страницы. 01:51 Неэффективный метод решения • Описание неэффективного метода изменения подзаголовка. • Необходимость более чистого способа решения проблемы. 02:12 Создание конструктора по умолчанию • Создание конструктора по умолчанию для пользовательского интерфейса. • Определение места внесения изменений в модели главного вида. 03:06 Рефакторинг фабрики страниц • Удаление дженериков и возвращение к исходной реализации фабрики страниц. • Добавление возможности редактирования viewmodel после её генерации. 04:42 Реализация редактирования viewmodel • Использование функции «после сотворения мира» для редактирования viewmodel. • Пример изменения подзаголовка в функции «после сотворения». 05:57 Ограничения текущего подхода • Проблема доступа только к модели просмотра страницы, а не к конкретной viewmodel. • Необходимость введения типа для изменения конкретной viewmodel. 06:49 Введение типа в фабрику страниц • Передача типа модели представления вместо перечисления имён страниц. • Проверка типа передаваемого объекта и ограничение вызовов get page view model. 08:06 Обновление логики фабрики страниц • Обновление логики фабрики страниц для работы с типами моделей представления. • Обработка ошибок при несоответствии типа. 10:17 Завершение рефакторинга • Обновление способа внедрения сервисов. • Сложности, связанные с использованием типов в коде. 11:03 Использование правила перехвата • Правило перехвата по умолчанию позволяет обрабатывать типы с определённым видом. • Подчёркивание и дополнительный выбор помогают указать, где именно применять правило. • Сокращённый вариант заменяет анализ «если» и делает код чище. 11:37 Копирование и создание нового переплета • Копирование правила позволяет создать новый переплет. 11:48 Запуск и проверка работы • После запуска всё должно работать в полном объёме. • Новый способ управления навигацией по страницам позволяет вводить любые данные. • После создания появляется новая страница, и всё остальное перемещается по ней. 12:02 Проверка модели просмотра страницы • Необходимо убедиться, что вызов get page view не выполняется для модели, не являющейся моделью просмотра страницы. • Предложение where ограничивает универсальность, требуя использования модели просмотра страниц. • Изменения минимальны, приложение использует новый синтаксис для поиска правильной viewmodel. 12:42 Реализация в пакетном режиме • Основная модель представления требует изменения синтаксиса, который может быть сложным для некоторых. • Реализация в пакетном режиме позволяет сохранить формат и обрабатывать данные после создания. • В следующем видео будет показана фабрика страниц в новом стиле.
