К содержимому

SusTreeView

SusTreeView

Раскрываемая иерархия — деревья skill / craft / folder из вложенных Items.

Пакет

SusKit · Молекулы (коммерческий)

Открыть в песочнице

SusKit · Molecules

Свойства

ИмяТипПо умолчанию
ModelProp<string>""v-model
DisabledProp<bool>falsev-model
DensityProp<string>"default"v-model
OpenAllProp<bool>falsev-model

Слоты

Слотов нет.

События

ИмяПолеPayload
ChangeOnChangestring
ToggleOnTogglestring

Хуки стиля

Контракт USS-классов — внешний вид переопределяется без правки C#. Состояния переключаются этими классами:

  • sus-tree-view
  • sus-tree-view__item
  • sus-tree-view__item--disabled
  • sus-tree-view__item--selected
  • sus-tree-view__item-icon
  • sus-tree-view__label
  • sus-tree-view__root
  • sus-tree-view__spacer
  • sus-tree-view__toggle
  • sus-tree-view--dense
  • sus-tree-view--disabled

Использование

Items задаются в коде (List<TreeViewItem> с опциональными Children).

csharp
var tree = new SusTreeView();
tree.Items.Value = new List<SusTreeView.TreeViewItem>
{
    new()
    {
        Title = "Combat",
        Value = "combat",
        Children = new List<SusTreeView.TreeViewItem>
        {
            new() { Title = "Strike", Value = "strike" },
            new() { Title = "Guard", Value = "guard" },
        }
    },
    new()
    {
        Title = "Craft",
        Value = "craft",
        Children = new List<SusTreeView.TreeViewItem>
        {
            new() { Title = "Forge", Value = "forge" },
            new() { Title = "Alchemy", Value = "alchemy" },
        }
    },
};
tree.Model.Value = "strike";
tree.OnChange += value => { /* selection */ };
tree.OnToggle += value => { /* expand/collapse key */ };
xml
<template>
  <sus:SusTreeView :Model="Selected.Value"
                   :Density="Density.Value"
                   :OpenAll="OpenAll.Value"
                   :Disabled="Disabled.Value"
                   @change="OnChange"
                   @toggle="OnToggle" />
</template>

<script>
public Prop<string> Selected = new("");
public Prop<string> Density = new("default");
public Prop<bool> OpenAll = new(false);
public Prop<bool> Disabled = new(false);
void OnChange(string value) { Selected.Value = value; }
void OnToggle(string value) { /* … */ }
// Populate Items in code.
</script>
PropRole
ItemsВложенный List<TreeViewItem>
ModelКлюч выбранного элемента (Value или Title)
OpenAllРазвернуть все ветки
Densitydefault · compact (плотные строки)
DisabledБлокирует выбор / раскрытие

Заметки

  • Поля элемента: Title, Value, Disabled, Children.
  • Ключ = Value, если задан, иначе Title.
  • Chevron переключает раскрытие/сворачивание; клик по строке выбирает и вызывает OnChange.