25. Avalonia UI Real World (Managing Visual States)
00:00 Введение и проблемы с кнопками • Появление кнопок сохранения и отмены действий при печати. • Необходимость реализации их функций. • Проблемы с видимостью кнопок при переключении вкладок. 00:55 Анализ проблемы с видимостью • Проблема с видимостью кнопок при переключении между вариантами выбора. • Использование «защитника» для решения проблемы. 01:12 Проверка состояния сохранения • Проверка состояния сохранения на равенство пустой строке. • Исправление проблемы с сериализацией свойств. 02:13 Игнорирование свойств • Применение JSON ignores для игнорирования свойств. • Успешное исправление проблемы с видимостью кнопок. 03:37 Сохранение новых элементов • Проверка, является ли элемент новым. • Отображение кнопок «Сохранить» и «Отменить» для новых элементов. 04:25 Предварительный выбор элемента • Предварительный выбор первого элемента при загрузке страницы. • Обновление пользовательского интерфейса. 05:30 Удаление элементов и обновление интерфейса • Удаление элемента из списка и обновление интерфейса. • Использование индекса элемента для выбора следующего элемента. 08:07 Идентификаторы новых элементов • Установка уникальных идентификаторов для новых элементов. • Возможность создания и удаления новых элементов. 09:07 Отмена действий • Логика отмены действий для новых и существующих элементов. • Удаление элемента из пользовательского интерфейса перед фиксацией на серверной части. 10:22 Разделение логики • Разделение логики удаления элемента из пользовательского интерфейса и серверной части. • Ввод идентификатора для удаления элемента. 10:55 Удаление элемента печати • Создание метода для удаления элемента печати из пользовательского интерфейса. • Проверка индекса элемента и его идентификатора. • Привязка к команде «отменить печать элемента». 11:28 Отмена печати • Отмена печати не влияет на существующие элементы. • Создание нового элемента и его отмена. • Возможность выделения новых элементов жирным шрифтом. 12:02 Состояние элементов • Сброс состояния при каждом включении и выключении. • Обновление состояния при загрузке элементов. • Сохранение состояния выбранного объекта. 13:20 Преобразователь значений • Необходимость преобразователя значений для выделения шрифта жирным шрифтом. • Создание статического ресурса преобразователя. • Преобразование логического значения в вес шрифта. 17:06 Объединение разделов • Объединение разделов «Общие сведения» и «Рисунки». • Переопределение сетки для объединения столбцов. • Привязка видимости к наличию элементов в списке. 18:52 Обновление свойства • Создание свойства для определения наличия элементов в списке для печати. • Добавление свойства notify для обновления при изменении коллекции. • Исправление проблемы с обновлением при удалении элементов. 20:58 Отображение пустого списка • Добавление нового элемента при пустом списке. • Использование панели стека и текстового блока. • Привязка непрозрачности к наличию элементов в списке. 22:20 Новое действие печати • Создание нового действия печати. • Добавление кнопки для выполнения нового действия. • Выравнивание элементов по центру и привязка команды. 23:34 Запуск приложения и проверка данных • Приложение загружает данные из базы данных, но они поддельные. • Пользователь может добавлять, отменять и сохранять элементы. • На странице «Введение» объясняется назначение страницы. 24:15 Обработка действий пользователя • При нажатии кнопки «Удалить» пользователь предупреждается о необходимости фиксации изменений. • Кнопка «Отмена» восстанавливает исходные элементы. • Кнопка «Сохранить» загружает и сохраняет данные в базу данных. 24:15 Анимации и стили • Добавлены стили для анимации увеличения и уменьшения непрозрачности элементов. • Настройка анимации для добавления нового элемента: медленный переход в 1 секунду для наглядности. • Возможность ускорения анимации до 0,1 секунды.
00:00 Введение и проблемы с кнопками • Появление кнопок сохранения и отмены действий при печати. • Необходимость реализации их функций. • Проблемы с видимостью кнопок при переключении вкладок. 00:55 Анализ проблемы с видимостью • Проблема с видимостью кнопок при переключении между вариантами выбора. • Использование «защитника» для решения проблемы. 01:12 Проверка состояния сохранения • Проверка состояния сохранения на равенство пустой строке. • Исправление проблемы с сериализацией свойств. 02:13 Игнорирование свойств • Применение JSON ignores для игнорирования свойств. • Успешное исправление проблемы с видимостью кнопок. 03:37 Сохранение новых элементов • Проверка, является ли элемент новым. • Отображение кнопок «Сохранить» и «Отменить» для новых элементов. 04:25 Предварительный выбор элемента • Предварительный выбор первого элемента при загрузке страницы. • Обновление пользовательского интерфейса. 05:30 Удаление элементов и обновление интерфейса • Удаление элемента из списка и обновление интерфейса. • Использование индекса элемента для выбора следующего элемента. 08:07 Идентификаторы новых элементов • Установка уникальных идентификаторов для новых элементов. • Возможность создания и удаления новых элементов. 09:07 Отмена действий • Логика отмены действий для новых и существующих элементов. • Удаление элемента из пользовательского интерфейса перед фиксацией на серверной части. 10:22 Разделение логики • Разделение логики удаления элемента из пользовательского интерфейса и серверной части. • Ввод идентификатора для удаления элемента. 10:55 Удаление элемента печати • Создание метода для удаления элемента печати из пользовательского интерфейса. • Проверка индекса элемента и его идентификатора. • Привязка к команде «отменить печать элемента». 11:28 Отмена печати • Отмена печати не влияет на существующие элементы. • Создание нового элемента и его отмена. • Возможность выделения новых элементов жирным шрифтом. 12:02 Состояние элементов • Сброс состояния при каждом включении и выключении. • Обновление состояния при загрузке элементов. • Сохранение состояния выбранного объекта. 13:20 Преобразователь значений • Необходимость преобразователя значений для выделения шрифта жирным шрифтом. • Создание статического ресурса преобразователя. • Преобразование логического значения в вес шрифта. 17:06 Объединение разделов • Объединение разделов «Общие сведения» и «Рисунки». • Переопределение сетки для объединения столбцов. • Привязка видимости к наличию элементов в списке. 18:52 Обновление свойства • Создание свойства для определения наличия элементов в списке для печати. • Добавление свойства notify для обновления при изменении коллекции. • Исправление проблемы с обновлением при удалении элементов. 20:58 Отображение пустого списка • Добавление нового элемента при пустом списке. • Использование панели стека и текстового блока. • Привязка непрозрачности к наличию элементов в списке. 22:20 Новое действие печати • Создание нового действия печати. • Добавление кнопки для выполнения нового действия. • Выравнивание элементов по центру и привязка команды. 23:34 Запуск приложения и проверка данных • Приложение загружает данные из базы данных, но они поддельные. • Пользователь может добавлять, отменять и сохранять элементы. • На странице «Введение» объясняется назначение страницы. 24:15 Обработка действий пользователя • При нажатии кнопки «Удалить» пользователь предупреждается о необходимости фиксации изменений. • Кнопка «Отмена» восстанавливает исходные элементы. • Кнопка «Сохранить» загружает и сохраняет данные в базу данных. 24:15 Анимации и стили • Добавлены стили для анимации увеличения и уменьшения непрозрачности элементов. • Настройка анимации для добавления нового элемента: медленный переход в 1 секунду для наглядности. • Возможность ускорения анимации до 0,1 секунды.
