跳转到内容

SusListGroup

SusListGroup

可选择的行列表 —— 通过 Items + 显示键生成 title / subtitle 密集布局。

SusKit · 分子(商业)

在 Playground 中打开

SusKit · Molecules

属性

名称类型默认值
SelectedProp<object>nullv-model
ItemTitleProp<string>""v-model
ItemValueProp<string>""v-model
ItemSubtitleProp<string>""v-model
DensityProp<string>"default"v-model
LinesProp<string>"one"v-model
NavProp<bool>falsev-model
DisabledProp<bool>falsev-model
RowChromeProp<bool>falsev-model

插槽

名称
(默认)

事件

名称字段载荷
SelectedOnSelectedobject

样式钩子

USS 类契约 — 无需改 C# 即可覆盖外观。状态通过这些类切换:

  • keyboard-focus
  • sus-list-group
  • sus-list-group__item
  • sus-list-group__item--disabled
  • sus-list-group__item--selected
  • sus-list-group__item-append
  • sus-list-group__item-append-text
  • sus-list-group__item-icon
  • sus-list-group__item-subtitle
  • sus-list-group__item-subtitle--ellipsis
  • sus-list-group__item-text
  • sus-list-group__item-title
  • sus-list-group__lines--multi
  • sus-list-group__lines--one
  • sus-list-group--comfortable
  • sus-list-group--dense
  • sus-list-group--disabled
  • sus-list-group--nav
  • sus-list-group--row-chrome

用法

ItemsList<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>
PropRole
Items行数据(List<object>
ItemTitle / ItemValue / ItemSubtitle每个项上的属性名
Selected当前选中项
Linesone · two · three
Densitydefault · compact · comfortable
Nav导航样式

备注

  • 可选项键:Icon / PrependIconAppendIconAppendText
  • 手动模式:跳过 Items,直接在默认插槽中放置自定义子元素。