SusRadioGroup

Exclusive radio-набор — дочерние SusRadio регистрируются в группе; Model хранит выбранное значение.
Пакет
SusKit · Молекулы (коммерческий)
Свойства
| Имя | Тип | По умолчанию | |
|---|---|---|---|
Model | Prop<string> | "" | v-model |
Label | Prop<string> | "" | v-model |
Disabled | Prop<bool> | false | v-model |
Readonly | Prop<bool> | false | v-model |
Mandatory | Prop<bool> | false | v-model |
Error | Prop<string> | "" | v-model |
Слоты
| Имя |
|---|
(по умолчанию) |
События
| Имя | Поле | Payload |
|---|---|---|
Change | OnChange | string |
Хуки стиля
Контракт USS-классов — внешний вид переопределяется без правки C#. Состояния переключаются этими классами:
sus-radio-groupsus-radio-group__detailssus-radio-group__labelsus-radio-group--disabledsus-radio-group--errorsus-radio-group--mandatorysus-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 => { /* … */ };| Prop | Role |
|---|---|
Model | Значение Value выбранной радиокнопки |
Label | Подпись группы над радиокнопками |
Mandatory | Требовать выбор (Validate) |
Disabled / Readonly | Блокирует взаимодействие |
Error | Сообщение под группой |
Заметки
- Дочерние radio вызывают
Register/Selectу родителя — держите их внутри группы (default-слот /Add). Rules(List<Func<string, string>>) выполняется при изменении;Validate()/ResetValidation()для форм.- Доки атома: SusRadio.