跳转到内容

SusRadioGroup

SusRadioGroup

互斥单选组 —— 子级 SusRadio 向组注册;Model 保存选中的值。

SusKit · 分子(商业)

在 Playground 中打开

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

插槽

名称
(默认)

事件

名称字段载荷
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组下方显示的消息

备注

  • 子级单选项会在父级上调用 Register / Select —— 请将它们保留在组内(默认插槽 / Add)。
  • RulesList<Func<string, string>>)在值变化时运行;表单可使用 Validate() / ResetValidation()
  • 原子组件文档:SusRadio