Aller au contenu principal

LgRadioGroup / LgRadio

LgRadioGroup<TValue> lie une valeur unique à un groupe de boutons radio ; chaque option est un LgRadio portant sa valeur (Value) et son libellé (Text ou contenu enfant). Un LgRadio doit toujours être déclaré dans un LgRadioGroup (une exception est levée sinon).

<LgRadioGroup Label="#Priority" @bind-Value="_model.Priority">
<Items>
<LgRadio Text="#PriorityLow" Value="Priority.Low" />
<LgRadio Text="#PriorityNormal" Value="Priority.Normal" />
<LgRadio Text="#PriorityHigh" Value="Priority.High" />
</Items>
</LgRadioGroup>
  • Espace de noms : Lagoon.UI.Components
  • Hérite de : LgInputBase<TValue> (LgRadioGroup) ; LgAriaComponentBase (LgRadio)
  • Package NuGet : Lagoon.UI

Utilisation​

Démonstration​

Essayez ce composant dans le showcase Lagoon.

Groupe simple​

TaskEditPage.razor
<LgRadioGroup Label="#Priority" @bind-Value="_model.Priority">
<Items>
<LgRadio Text="#PriorityLow" Value="Priority.Low" />
<LgRadio Text="#PriorityNormal" Value="Priority.Normal" />
<LgRadio Text="#PriorityHigh" Value="Priority.High" Tooltip="#PriorityHighHelp" />
</Items>
</LgRadioGroup>
TaskEditPage.razor.cs
public partial class TaskEditPage : LgPage
{
private readonly TaskVm _model = new();

private enum Priority
{
Low,
Normal,
High
}

private sealed class TaskVm
{
public Priority Priority { get; set; }
}
}

Orientation et style​

DisplayOrientation empile les options verticalement (par défaut) ou les aligne horizontalement. DisplayKind choisit le rendu : case ronde classique ou style « moderne » sans case.

DisplayModePage.razor
<LgRadioGroup Label="#DisplayMode"
DisplayOrientation="DisplayOrientation.Horizontal"
DisplayKind="RadioButtonDisplayKind.Modern"
@bind-Value="_model.Mode">
<Items>
<LgRadio Text="#ModeList" Value="1" />
<LgRadio Text="#ModeCards" Value="2" />
</Items>
</LgRadioGroup>
DisplayModePage.razor.cs
public partial class DisplayModePage : LgPage
{
private readonly DisplayVm _model = new();

private sealed class DisplayVm
{
public int Mode { get; set; } = 1;
}
}

Contenu riche et option désactivée​

ChildContent d'un LgRadio remplace le libellé texte ; Disabled neutralise une option sans la masquer.

PlanPage.razor
<LgRadioGroup Label="#Plan" @bind-Value="_model.Plan">
<Items>
<LgRadio Value="@("standard")">
<strong>Standard</strong> — <LgIcon IconName="@IconNames.All.Check" />
</LgRadio>
<LgRadio Text="#PremiumPlan" Value="@("premium")" Disabled="true" />
</Items>
</LgRadioGroup>
PlanPage.razor.cs
public partial class PlanPage : LgPage
{
private readonly PlanVm _model = new();

private sealed class PlanVm
{
public string Plan { get; set; } = "standard";
}
}

Annuler un changement de sélection​

OnChangingAsync est appelé avant l'affectation et permet d'annuler le changement (args.Cancel) ; OnChange (hérité) est appelé après.

SubscriptionPage.razor
<LgRadioGroup Label="#Subscription"
OnChangingAsync="OnSubscriptionChangingAsync"
@bind-Value="_model.Subscription">
<Items>
<LgRadio Text="#Monthly" Value="@("monthly")" />
<LgRadio Text="#Yearly" Value="@("yearly")" />
</Items>
</LgRadioGroup>
SubscriptionPage.razor.cs
public partial class SubscriptionPage : LgPage
{
private readonly SubscriptionVm _model = new();

// Appelé avant le changement : bloque le passage au mensuel en cours d'engagement.
private Task OnSubscriptionChangingAsync(ChangingEventArgs<string> args)
{
if (args.NewValue == "monthly" && _model.HasCommitment)
{
args.Cancel = true;
ShowWarning("#CommitmentInProgress");
}
return Task.CompletedTask;
}

private sealed class SubscriptionVm
{
public string Subscription { get; set; } = "yearly";
public bool HasCommitment { get; set; } = true;
}
}

Propriétés​

LgRadioGroup<TValue>​

Toutes les propriétés [Parameter] du composant, y compris celles héritées.

NomTypeDéfautDéclaré dansDescription
DisplayKindRadioButtonDisplayKindClassicLgRadioGroupStyle d'affichage des boutons radio.
DisplayOrientationDisplayOrientationVerticalLgRadioGroupOrientation des options.
GroupNamestringnullLgRadioGroupNom du groupe (attribut name des radios). Généré si absent.
ItemsRenderFragmentnullLgRadioGroupLes options, déclarées avec LgRadio.
OnChangingAsyncFunc<ChangingEventArgs<TValue>, Task>nullLgRadioGroupCallback appelé avant le changement de valeur ; le changement peut y être annulé.
AdditionalAttributesIReadOnlyDictionary<string, object>nullLgInputBaseAttributs HTML additionnels appliqués à l'élément rendu.
AutoFocusboolfalseLgInputBaseDonne le focus au groupe lors du premier rendu.
ConfirmationMessagestringnullLgInputBaseMessage de confirmation affiché avant d'appliquer un changement de sélection.
ContainerIInputContainer<TValue>nullLgInputBaseUsage interne : rattache une cellule de GridView au groupe.
CssClassstringnullLgInputBaseClasses CSS additionnelles.
DisabledboolfalseLgInputBaseDésactive tout le groupe.
DisplayNamestringnullLgInputBaseNom du champ utilisé dans les messages d'erreur.
HideValidationMessageboolfalseLgInputBaseMasque le message de validation sous le groupe.
LabelstringnullLgInputBaseLibellé du groupe.
LabelContentRenderFragmentnullLgInputBaseContenu personnalisé de la zone de libellé.
OnChangeEventCallback<ChangeEventArgs>—LgInputBaseCallback appelé après le changement de sélection.
OnResetEventCallback<ChangeEventArgs>—LgInputBaseCallback appelé à la réinitialisation.
PolicyEditstringnullLgInputBasePolicy requise pour modifier le groupe.
PolicyVisiblestringnullLgInputBasePolicy requise pour afficher le groupe.
ReadOnlyboolfalseLgInputBaseAffiche la sélection en lecture seule.
Requiredbool?nullLgInputBaseChamp obligatoire. Si null, déduit de l'attribut [Required] de la propriété liée.
ResetButtonbool?nullLgInputBaseAffiche le bouton d'effacement. Si null, la configuration de comportement de l'application s'applique.
ResetTextstringnullLgInputBaseTexte du bouton d'effacement.
ResetTextAriaLabelstringnullLgInputBaseLibellé accessible (aria-label) du bouton d'effacement.
TooltipstringnullLgInputBaseBulle d'aide du groupe.
TooltipIsHtmlboolfalseLgInputBaseIndique si le contenu du Tooltip est au format HTML (sinon texte brut).
ValueTValue—LgInputBaseValeur sélectionnée (@bind-Value).
ValueChangedEventCallback<TValue>—LgInputBaseCallback de mise à jour de la valeur liée.
ValueExpressionExpression<Func<TValue>>—LgInputBaseExpression identifiant la propriété liée.
AriaLabelstringnullLgAriaComponentBaseValeur de l'attribut aria-label.
AriaLabelledBystringnullLgAriaComponentBaseValeur de l'attribut aria-labelledby.

LgRadio<TValue>​

NomTypeDéfautDéclaré dansDescription
AdditionalAttributesIReadOnlyDictionary<string, object>nullLgRadioAttributs HTML additionnels appliqués à l'élément input.
ChildContentRenderFragmentnullLgRadioContenu riche du libellé de l'option (à la place de Text).
CssClassstringnullLgRadioClasses CSS additionnelles de l'option.
DisabledboolfalseLgRadioDésactive l'option.
TextstringnullLgRadioLibellé de l'option.
TooltipstringnullLgRadioBulle d'aide de l'option.
TooltipIsHtmlboolfalseLgRadioIndique si le contenu du Tooltip est au format HTML (sinon texte brut).
ValueTValue—LgRadioValeur portée par cette option.
AriaLabelstringnullLgAriaComponentBaseValeur de l'attribut aria-label.
AriaLabelledBystringnullLgAriaComponentBaseValeur de l'attribut aria-labelledby.
Paramètres en cascade

LgRadio reçoit son groupe parent par le paramètre en cascade RadioGroup (ILgRadioGroup) — il doit être déclaré dans le Items d'un LgRadioGroup.

Événements​

ÉvénementTypeDescription
OnChangingAsyncFunc<ChangingEventArgs<TValue>, Task>Avant le changement de sélection ; args.Cancel = true l'annule.
OnChangeEventCallback<ChangeEventArgs>Après le changement de sélection.
OnResetEventCallback<ChangeEventArgs>À la réinitialisation du groupe.

Énumérations associées​

DisplayOrientation​

ValeurDescription
VerticalOptions empilées verticalement (valeur par défaut).
HorizontalOptions alignées horizontalement.

RadioButtonDisplayKind​

ValeurDescription
ClassicCase ronde affichée à côté du libellé (valeur par défaut).
ModernStyle de texte sélectionné, sans case.

Bonnes pratiques / accessibilité​

  • Pour plus de quelques options, préférez LgSelect : la liste déroulante reste lisible quand les choix se multiplient.
  • Donnez un Tooltip aux options dont le libellé court mérite une précision, plutôt que d'allonger le libellé.
Référence complète

Tous les paramètres (hérités compris) : Référence API — LgRadioGroup · LgRadio.

Composants liés​

  • LgSelect — sélection unique dans une liste déroulante.
  • LgCheckBoxList — sélection multiple par cases à cocher.