28. Avalonia UI Real World (Dialog Service Provider)
00:00 Введение в проблему • В последнем видео был создан подтверждённый диалог, который закрывается при нажатии кнопок. • Необходимо открыть диалог при нажатии на кнопку удаления и обработать реакцию пользователя. • Временный код в viewmodel отменяется, создаётся новый диалог. 00:43 Настройка диалога • Создаётся новый диалог confirm view model. • Настраивается сообщение диалога: «Ты уверен, что хочешь удалить этот отпечаток?» • Получаются индекс элемента и его название для отображения в диалоге. 01:46 Обработка ответа пользователя • Проверяется индекс элемента, если он равен -1, диалог возвращается. • Отображается список с индексом и названием элемента. • Пользователь может выбрать «да» или «нет». 02:18 Асинхронные задачи • Диалог обрабатывается как асинхронная задача. • Исправляются ошибки с пользовательским интерфейсом. • Асинхронные задачи переименовываются в «асинхронные». 03:15 Внедрение зависимостей • Используется внедрение зависимостей для доступа к основной модели просмотра. • Устанавливается свойство текущего диалога. • Проверяется видимость диалога. 05:58 Создание диалоговой службы • Создаётся интерфейс dialog provider. • Реализуется диалоговая служба с асинхронной задачей showdialog. • Диалоговая служба принимает viewmodel и хост для отображения диалога. 10:37 Использование диалоговой службы • Диалоговая служба используется для отображения диалога. • Ожидание завершения диалога и установка диалога хоста. • Диалог запускается в любой viewmodel, наследующей i dialog provider. 11:30 Обработка результатов диалога • При нажатии «да» или «нет» проверяется состояние диалога «подтверждено». • Если диалог не подтверждён, возвращается без дальнейших действий. • Гибкость работы с диалогами обеспечивается через viewmodel. 12:04 Создание диалога • Появление всплывающего окна с вариантами «Нет» и «Да». • При нажатии «Нет» элемент не удаляется, при нажатии «Да» — удаляется. 12:23 Предупреждение при отмене • Нажатие кнопки «Отмена» предупреждает о возможном удалении элемента. • Логическое предупреждение по умолчанию равно true. 12:58 Настройка предупреждения • Возможность отключения предупреждения через логическое значение. • Проверка работы предупреждения при отмене и удалении. 13:42 Добавление анимации • Добавление анимации для затухания диалога при нажатии на фон и закрытия при нажатии на кнопку «Выключить». 14:13 Работа с непрозрачностью • Изменение стилей стековой панели на стили сетки. • Преобразование непрозрачности в логическое значение. 15:06 Привязка непрозрачности к видимости • Привязка непрозрачности к свойству «видимый». • Создание диалогового окна с хэштегом для привязки. 15:57 Тестирование анимации • Проверка работы анимации при нажатии кнопки «Открыть». • Изображение постепенно исчезает, пока не станет полностью невидимым. 17:15 Заключение • Получение полноценного диалога с анимацией.
00:00 Введение в проблему • В последнем видео был создан подтверждённый диалог, который закрывается при нажатии кнопок. • Необходимо открыть диалог при нажатии на кнопку удаления и обработать реакцию пользователя. • Временный код в viewmodel отменяется, создаётся новый диалог. 00:43 Настройка диалога • Создаётся новый диалог confirm view model. • Настраивается сообщение диалога: «Ты уверен, что хочешь удалить этот отпечаток?» • Получаются индекс элемента и его название для отображения в диалоге. 01:46 Обработка ответа пользователя • Проверяется индекс элемента, если он равен -1, диалог возвращается. • Отображается список с индексом и названием элемента. • Пользователь может выбрать «да» или «нет». 02:18 Асинхронные задачи • Диалог обрабатывается как асинхронная задача. • Исправляются ошибки с пользовательским интерфейсом. • Асинхронные задачи переименовываются в «асинхронные». 03:15 Внедрение зависимостей • Используется внедрение зависимостей для доступа к основной модели просмотра. • Устанавливается свойство текущего диалога. • Проверяется видимость диалога. 05:58 Создание диалоговой службы • Создаётся интерфейс dialog provider. • Реализуется диалоговая служба с асинхронной задачей showdialog. • Диалоговая служба принимает viewmodel и хост для отображения диалога. 10:37 Использование диалоговой службы • Диалоговая служба используется для отображения диалога. • Ожидание завершения диалога и установка диалога хоста. • Диалог запускается в любой viewmodel, наследующей i dialog provider. 11:30 Обработка результатов диалога • При нажатии «да» или «нет» проверяется состояние диалога «подтверждено». • Если диалог не подтверждён, возвращается без дальнейших действий. • Гибкость работы с диалогами обеспечивается через viewmodel. 12:04 Создание диалога • Появление всплывающего окна с вариантами «Нет» и «Да». • При нажатии «Нет» элемент не удаляется, при нажатии «Да» — удаляется. 12:23 Предупреждение при отмене • Нажатие кнопки «Отмена» предупреждает о возможном удалении элемента. • Логическое предупреждение по умолчанию равно true. 12:58 Настройка предупреждения • Возможность отключения предупреждения через логическое значение. • Проверка работы предупреждения при отмене и удалении. 13:42 Добавление анимации • Добавление анимации для затухания диалога при нажатии на фон и закрытия при нажатии на кнопку «Выключить». 14:13 Работа с непрозрачностью • Изменение стилей стековой панели на стили сетки. • Преобразование непрозрачности в логическое значение. 15:06 Привязка непрозрачности к видимости • Привязка непрозрачности к свойству «видимый». • Создание диалогового окна с хэштегом для привязки. 15:57 Тестирование анимации • Проверка работы анимации при нажатии кнопки «Открыть». • Изображение постепенно исчезает, пока не станет полностью невидимым. 17:15 Заключение • Получение полноценного диалога с анимацией.
