SusListGroup

Выбираемый список строк — title / subtitle уплотняются через Items + display keys.
Пакет
SusKit · Молекулы (коммерческий)
Свойства
| Имя | Тип | По умолчанию | |
|---|---|---|---|
Selected | Prop<object> | null | v-model |
ItemTitle | Prop<string> | "" | v-model |
ItemValue | Prop<string> | "" | v-model |
ItemSubtitle | Prop<string> | "" | v-model |
Density | Prop<string> | "default" | v-model |
Lines | Prop<string> | "one" | v-model |
Nav | Prop<bool> | false | v-model |
Disabled | Prop<bool> | false | v-model |
RowChrome | Prop<bool> | false | v-model |
Слоты
| Имя |
|---|
(по умолчанию) |
События
| Имя | Поле | Payload |
|---|---|---|
Selected | OnSelected | object |
Хуки стиля
Контракт USS-классов — внешний вид переопределяется без правки C#. Состояния переключаются этими классами:
keyboard-focussus-list-groupsus-list-group__itemsus-list-group__item--disabledsus-list-group__item--selectedsus-list-group__item-appendsus-list-group__item-append-textsus-list-group__item-iconsus-list-group__item-subtitlesus-list-group__item-subtitle--ellipsissus-list-group__item-textsus-list-group__item-titlesus-list-group__lines--multisus-list-group__lines--onesus-list-group--comfortablesus-list-group--densesus-list-group--disabledsus-list-group--navsus-list-group--row-chrome
Использование
Items — это List<object> (словари или POCO). Используйте ItemTitle / ItemSubtitle / ItemValue для имён свойств.
csharp
var list = new SusListGroup();
list.ItemTitle.Value = "Title";
list.ItemSubtitle.Value = "Subtitle";
list.Lines.Value = "two";
list.Items.Value = new List<object>
{
new Dictionary<string, object> { ["Title"] = "Squad Alpha", ["Subtitle"] = "12 units" },
new Dictionary<string, object> { ["Title"] = "Squad Beta", ["Subtitle"] = "8 units" },
new Dictionary<string, object> { ["Title"] = "Squad Gamma", ["Subtitle"] = "15 units" },
};
list.OnSelected += item => { /* … */ };xml
<template>
<sus:SusListGroup ItemTitle="Title"
ItemSubtitle="Subtitle"
Lines="two"
:Selected="Selected.Value"
:Nav="Nav.Value"
:Disabled="Disabled.Value"
@selected="OnSelected" />
</template>
<script>
public Prop<object> Selected = new(null);
public Prop<bool> Nav = new(false);
public Prop<bool> Disabled = new(false);
void OnSelected(object item) { Selected.Value = item; }
// Populate Items in code.
</script>| Prop | Role |
|---|---|
Items | Строки (List<object>) |
ItemTitle / ItemValue / ItemSubtitle | Имена свойств на каждом элементе |
Selected | Текущий выбор |
Lines | one · two · three |
Density | default · compact · comfortable |
Nav | Навигационный стиль |
Заметки
- Опциональные ключи элемента:
Icon/PrependIcon,AppendIcon,AppendText. - Ручной режим: пропустите
Itemsи разместите кастомных детей в default-слоте.