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

SusRadioGroup

SusRadioGroup

Exclusive radio-набор — дочерние SusRadio регистрируются в группе; Model хранит выбранное значение.

Пакет

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

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

SusKit · Molecules

Свойства

ИмяТипПо умолчанию
ModelProp<string>""v-model
LabelProp<string>""v-model
DisabledProp<bool>falsev-model
ReadonlyProp<bool>falsev-model
MandatoryProp<bool>falsev-model
ErrorProp<string>""v-model

Слоты

Имя
(по умолчанию)

События

ИмяПолеPayload
ChangeOnChangestring

Хуки стиля

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

  • sus-radio-group
  • sus-radio-group__details
  • sus-radio-group__label
  • sus-radio-group--disabled
  • sus-radio-group--error
  • sus-radio-group--mandatory
  • sus-radio-group--readonly

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

xml
<template>
  <sus:SusRadioGroup Label="Role"
                     :Model="Role.Value"
                     :Disabled="Disabled.Value"
                     :Mandatory="Mandatory.Value"
                     @change="OnRole">
    <sus:SusRadio Label="Admin" Value="admin" Color="primary" />
    <sus:SusRadio Label="User" Value="user" Color="primary" />
    <sus:SusRadio Label="Guest" Value="guest" Color="primary" />
  </sus:SusRadioGroup>
</template>

<script>
public Prop<string> Role = new("user");
public Prop<bool> Disabled = new(false);
public Prop<bool> Mandatory = new(false);
void OnRole(string value) { Role.Value = value; }
</script>
csharp
var group = new SusRadioGroup();
group.Label.Value = "Role";
group.Model.Value = "user";
group.Add(new SusRadio { Value = { Value = "admin" }, Label = { Value = "Admin" } });
group.Add(new SusRadio { Value = { Value = "user" }, Label = { Value = "User" } });
group.Add(new SusRadio { Value = { Value = "guest" }, Label = { Value = "Guest" } });
group.OnChange += value => { /* … */ };
PropRole
ModelЗначение Value выбранной радиокнопки
LabelПодпись группы над радиокнопками
MandatoryТребовать выбор (Validate)
Disabled / ReadonlyБлокирует взаимодействие
ErrorСообщение под группой

Заметки

  • Дочерние radio вызывают Register / Select у родителя — держите их внутри группы (default-слот / Add).
  • Rules (List<Func<string, string>>) выполняется при изменении; Validate() / ResetValidation() для форм.
  • Доки атома: SusRadio.