Aller au contenu principal

LgCheckBoxList

LgCheckBoxList<TValue> affiche un groupe de cases à cocher et lie l'ensemble des valeurs cochées à une collection (ICollection<TValue>). Chaque case est déclarée avec un LgCheckBoxListItem portant sa valeur et son texte.

<LgCheckBoxList Label="#Options" @bind-Value="_model.SelectedOptions">
<Items>
<LgCheckBoxListItem Text="#Option1" Value="1" />
<LgCheckBoxListItem Text="#Option2" Value="2" />
</Items>
</LgCheckBoxList>
  • Espace de noms : Lagoon.UI.Components
  • Hérite de : LgInputBase<ICollection<TValue>> → LgAriaComponentBase → LgComponentBase
  • Package NuGet : Lagoon.UI

Utilisation​

Démonstration​

Essayez ce composant dans le showcase Lagoon.

Groupe simple​

OptionsPage.razor
<LgCheckBoxList Label="#Options" @bind-Value="_model.SelectedOptions">
<Items>
<LgCheckBoxListItem Text="#Option1" Value="1" />
<LgCheckBoxListItem Text="#Option2" Value="2" />
<LgCheckBoxListItem Text="#Option3" Value="3" Disabled="true" />
</Items>
</LgCheckBoxList>
OptionsPage.razor.cs
public partial class OptionsPage : LgPage
{
private readonly OptionsVm _model = new();

private sealed class OptionsVm
{
// Collection liée : contient les valeurs des cases cochées.
public List<int> SelectedOptions { get; set; } = new();
}
}

Orientation et rendu​

DisplayOrientation empile les cases verticalement (par défaut) ou les aligne horizontalement. CheckBoxKind rend chaque case en case à cocher ou en interrupteur, et TextPosition place le texte à gauche ou à droite.

DaysPage.razor
<LgCheckBoxList Label="#WorkingDays"
DisplayOrientation="DisplayOrientation.Horizontal"
CheckBoxKind="CheckBoxKind.Toggle"
TextPosition="CheckBoxTextPosition.Right"
@bind-Value="_model.WorkingDays">
<Items>
<LgCheckBoxListItem Text="#Monday" Value="DayOfWeek.Monday" />
<LgCheckBoxListItem Text="#Tuesday" Value="DayOfWeek.Tuesday" />
<LgCheckBoxListItem Text="#Wednesday" Value="DayOfWeek.Wednesday" />
</Items>
</LgCheckBoxList>
DaysPage.razor.cs
public partial class DaysPage : LgPage
{
private readonly DaysVm _model = new();

private sealed class DaysVm
{
public List<DayOfWeek> WorkingDays { get; set; } = new();
}
}

Annuler un changement de sélection​

OnChangingAsync est appelé avant la mise à jour de la collection ; args.ItemsToAdd / args.ItemsToRemove détaillent le changement et args.Cancel l'annule.

ModulesPage.razor
<LgCheckBoxList Label="#Modules"
OnChangingAsync="OnModulesChangingAsync"
@bind-Value="_model.Modules">
<Items>
<LgCheckBoxListItem Text="#CoreModule" Value="@("core")" />
<LgCheckBoxListItem Text="#ReportingModule" Value="@("reporting")" />
</Items>
</LgCheckBoxList>
ModulesPage.razor.cs
public partial class ModulesPage : LgPage
{
private readonly ModulesVm _model = new();

// Appelé avant le changement : interdit de décocher le module obligatoire.
private Task OnModulesChangingAsync(ChangingCollectionEventArgs<string> args)
{
if (args.ItemsToRemove.Contains("core"))
{
args.Cancel = true;
ShowWarning("#CoreModuleRequired");
}
return Task.CompletedTask;
}

private sealed class ModulesVm
{
public List<string> Modules { get; set; } = new() { "core" };
}
}

Propriétés​

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

NomTypeDéfautDéclaré dansDescription
CheckBoxKindCheckBoxKindCheckLgCheckBoxListRendu des cases : case à cocher ou interrupteur.
DisplayOrientationDisplayOrientationVerticalLgCheckBoxListOrientation des cases.
ItemsRenderFragmentnullLgCheckBoxListLes cases, déclarées avec LgCheckBoxListItem.
OnChangingAsyncFunc<ChangingCollectionEventArgs<TValue>, Task>nullLgCheckBoxListCallback appelé avant le changement de la collection ; le changement peut y être annulé.
TextPositionCheckBoxTextPositionLeftLgCheckBoxListPosition du texte de chaque case.
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<ICollection<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.
TooltipIsHtmlboolfalseLgInputBaseIndique si le contenu du Tooltip est au format HTML (sinon texte brut).
ValueICollection<TValue>nullLgInputBaseCollection des valeurs cochées (@bind-Value).
ValueChangedEventCallback<ICollection<TValue>>—LgInputBaseCallback de mise à jour de la collection liée.
ValueExpressionExpression<Func<ICollection<TValue>>>—LgInputBaseExpression identifiant la propriété liée.
AriaLabelstringnullLgAriaComponentBaseValeur de l'attribut aria-label.
AriaLabelledBystringnullLgAriaComponentBaseValeur de l'attribut aria-labelledby.

LgCheckBoxListItem​

Chaque case du groupe est déclarée avec un LgCheckBoxListItem :

NomTypeDéfautDescription
CssClassstringnullClasses CSS additionnelles de la case.
DisabledboolfalseDésactive la case.
TextstringnullTexte de la case.
TooltipstringnullBulle d'aide de la case.
TooltipIsHtmlboolfalseIndique si le contenu du Tooltip est au format HTML.
ValueTValue—Valeur ajoutée à la collection quand la case est cochée.
Paramètres en cascade

LgCheckBoxList consomme aussi des paramètres fournis automatiquement par des composants ancêtres (vous n'avez pas à les définir) : ParentAuthorizeView (LgAuthorizeView) et le contexte d'édition d'un LgEditForm parent.

Événements​

ÉvénementTypeDescription
OnChangingAsyncFunc<ChangingCollectionEventArgs<TValue>, Task>Avant le changement de la collection ; args.ItemsToAdd / args.ItemsToRemove détaillent le changement, args.Cancel = true l'annule.
OnChangeEventCallback<ChangeEventArgs>Après le changement de la collection.
OnResetEventCallback<ChangeEventArgs>À la réinitialisation du groupe.

Énumérations associées​

Les énumérations utilisées sont documentées sur les composants de base : CheckBoxKind et CheckBoxTextPosition sur LgCheckBox, DisplayOrientation sur LgRadioGroup.

Bonnes pratiques / accessibilité​

  • Initialisez la collection liée avec une liste vide plutôt que null.
  • Pour une longue liste de choix, préférez LgSelect en sélection multiple : la liste déroulante avec recherche reste lisible.
Référence complète

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

Composants liés​