MultiSelectTask
MultiSelectTask
позволяет отметить сразу несколько пунктов. Подходит для выбора компонентов установки, фич, ролей и других списков, где безопасно выбрать несколько значений.
Базовый пример

Настройки
Пункт «Выбрать все»
Значения по умолчанию
Viewport
Отключение элементов
Таймаут
Зависимости между пунктами
WithDependencies
описывает связи между пунктами меню. Для каждого ключа задаётся MultiSelectDependencyRule
с действиями при выборе (OnSelect
) и снятии выбора (OnDeselect
). Доступные действия:
Disable
/Enable
— временно блокируют или возвращают пункт.ForceSelect
— автоматически отмечает связанные пункты (например, обязательные зависимости).ForceClear
— снимает выбор, если условия больше не выполнены.
Пустой выбор как отдельный сценарий
По умолчаниюMultiSelectTask
позволяет завершить задачу без выбора — удобно для опциональных блоков. Если нужно требовать хотя бы один пункт, вызовите WithRequireSelection(true)
: при нажатии Enter без выбора пользователь увидит подсказку NeedSelectAtLeastOne
.
Получение результата
Советы
- Используйте
WithSelectAll
, если большинство пользователей выбирают все элементы. - Храните идентификаторы в самих строках (
id::подсказка
), чтобы легко сопоставлять выбор с конфигурацией. - Если нужно ограничить максимальное количество пунктов, добавьте проверку после
queue.Run()
и попросите пользователя повторить выбор. - Комбинируйте
MultiSelectTask
сFuncTask
, чтобы после выбора сразу выполнять сопутствующие операции (например, устанавливать выбранные модули).
Связанные материалы
- SingleSelectTask
- InputTask — удобно запрашивать дополнительные параметры для выбранных пунктов