21. Avalonia UI Real World (Adding Items to List)
00:00 Привязка страницы действий при печати • Страница действий при печати полностью привязана к viewmodels. • Необходимо добавить возможность создания новых моделей. • Добавление кнопки печати внутри списка может быть не лучшей дизайнерской практикой. 00:34 Работа с моделью просмотра • Страница «Действия для печати» связана с моделью просмотра страницы «Действия», а не с моделью просмотра «Действия для печати». • Элементы внутри списка являются подпунктами модели представления верхнего уровня. 01:01 Исправление предупреждений • Rider выдаёт предупреждения о недопустимости обнуления полей. • Инициализация списка печати предотвращает его пустое состояние. • Обработка возможных нулевых значений для корректной работы интерфейса. 02:39 Добавление кнопки в список • Обсуждение необходимости создания нового списка для отображения кнопки. • Модель представления должна знать о ситуации для корректного отображения кнопки. • Создание наблюдаемого свойства для визуального списка печати. 04:49 Настройка визуального списка • Настройка привязки к визуальному списку печати. • Добавление нового элемента в список при нажатии кнопки. 05:16 Определение пользовательского действия • Добавление свойства для определения, является ли действие пользовательским. • Создание панели стека и кнопки для отображения пользовательского действия. 06:54 Проблемы со стилями • Проблемы с стилями при размещении кнопки внутри списка. • Отмена визуальных эффектов для упрощения кода. 08:09 Обновление представления • Добавление кнопки вверху сетки. • Настройка выравнивания и содержимого кнопки. 09:14 Реализация добавления нового элемента • Добавление команды для добавления нового элемента в список. • Создание новой модели вида печати и добавление её в список. • Проверка работы команды при нажатии кнопки. 10:50 Улучшение выбора элемента • При нажатии на новый элемент печати должен автоматически выбираться соответствующий элемент. • Используется свойство «Точка выбрана» для установки значения true. • Привязка к выбранному элементу списка позволяет автоматически обновлять визуальное отображение. 12:12 Проверка работы привязки • Если окно списка разработано с учётом двусторонней привязки, проблема решается автоматически. • Без двусторонней привязки пользовательский интерфейс и серверная часть связаны неправильно. 13:04 Оптимизация процесса ввода • Необходимо предварительно сфокусировать и выделить текст названия задания при нажатии на кнопку «Новое действие». • Это упрощает ввод названия задания пользователем. 13:45 Соблюдение принципов MVVM • Модель представления не должна знать о представлении, чтобы избежать нарушения принципов MVVM. • Представление может манипулировать viewmodel, но не наоборот. 14:37 Обработка выбора элемента • Событие выбора элемента должно быть подключено для выполнения необходимых действий. • Проверка значения null для определения, выбран ли элемент. 17:42 Доступ к текстовому полю • Текстовое поле «Название работы» должно быть привязано к выбранному элементу. • Фокусировка и выделение текста выполняются автоматически при выборе элемента. 18:58 Ограничение выделения текста • Выделение текста должно происходить только при первом отображении нового элемента. • Вводится свойство «сохранено» для управления поведением интерфейса. 20:02 Настройка логики по умолчанию • Логика по умолчанию устанавливается для новых элементов. • Явное указание на новый элемент позволяет улучшить шаблон интерфейса. 20:53 Проверка результата • Проверка работы интерфейса после настройки логики. • Подтверждение, что интерфейс работает корректно для новых элементов. 21:39 Проблемы с вкладками и их решение • При удалении вкладки выбирается неправильный текст. • При вводе вкладки текст выбирается заново. • Создание нового элемента, ввод текста и нажатие на него не должны существовать.
00:00 Привязка страницы действий при печати • Страница действий при печати полностью привязана к viewmodels. • Необходимо добавить возможность создания новых моделей. • Добавление кнопки печати внутри списка может быть не лучшей дизайнерской практикой. 00:34 Работа с моделью просмотра • Страница «Действия для печати» связана с моделью просмотра страницы «Действия», а не с моделью просмотра «Действия для печати». • Элементы внутри списка являются подпунктами модели представления верхнего уровня. 01:01 Исправление предупреждений • Rider выдаёт предупреждения о недопустимости обнуления полей. • Инициализация списка печати предотвращает его пустое состояние. • Обработка возможных нулевых значений для корректной работы интерфейса. 02:39 Добавление кнопки в список • Обсуждение необходимости создания нового списка для отображения кнопки. • Модель представления должна знать о ситуации для корректного отображения кнопки. • Создание наблюдаемого свойства для визуального списка печати. 04:49 Настройка визуального списка • Настройка привязки к визуальному списку печати. • Добавление нового элемента в список при нажатии кнопки. 05:16 Определение пользовательского действия • Добавление свойства для определения, является ли действие пользовательским. • Создание панели стека и кнопки для отображения пользовательского действия. 06:54 Проблемы со стилями • Проблемы с стилями при размещении кнопки внутри списка. • Отмена визуальных эффектов для упрощения кода. 08:09 Обновление представления • Добавление кнопки вверху сетки. • Настройка выравнивания и содержимого кнопки. 09:14 Реализация добавления нового элемента • Добавление команды для добавления нового элемента в список. • Создание новой модели вида печати и добавление её в список. • Проверка работы команды при нажатии кнопки. 10:50 Улучшение выбора элемента • При нажатии на новый элемент печати должен автоматически выбираться соответствующий элемент. • Используется свойство «Точка выбрана» для установки значения true. • Привязка к выбранному элементу списка позволяет автоматически обновлять визуальное отображение. 12:12 Проверка работы привязки • Если окно списка разработано с учётом двусторонней привязки, проблема решается автоматически. • Без двусторонней привязки пользовательский интерфейс и серверная часть связаны неправильно. 13:04 Оптимизация процесса ввода • Необходимо предварительно сфокусировать и выделить текст названия задания при нажатии на кнопку «Новое действие». • Это упрощает ввод названия задания пользователем. 13:45 Соблюдение принципов MVVM • Модель представления не должна знать о представлении, чтобы избежать нарушения принципов MVVM. • Представление может манипулировать viewmodel, но не наоборот. 14:37 Обработка выбора элемента • Событие выбора элемента должно быть подключено для выполнения необходимых действий. • Проверка значения null для определения, выбран ли элемент. 17:42 Доступ к текстовому полю • Текстовое поле «Название работы» должно быть привязано к выбранному элементу. • Фокусировка и выделение текста выполняются автоматически при выборе элемента. 18:58 Ограничение выделения текста • Выделение текста должно происходить только при первом отображении нового элемента. • Вводится свойство «сохранено» для управления поведением интерфейса. 20:02 Настройка логики по умолчанию • Логика по умолчанию устанавливается для новых элементов. • Явное указание на новый элемент позволяет улучшить шаблон интерфейса. 20:53 Проверка результата • Проверка работы интерфейса после настройки логики. • Подтверждение, что интерфейс работает корректно для новых элементов. 21:39 Проблемы с вкладками и их решение • При удалении вкладки выбирается неправильный текст. • При вводе вкладки текст выбирается заново. • Создание нового элемента, ввод текста и нажатие на него не должны существовать.
