@foreach (var item in ListValuesOrd) { }
@code { #region Public Properties [Parameter] public string ClassDesel { get; set; } = "btn-secondary"; [Parameter] public string ClassSel { get; set; } = "btn-primary"; [Parameter] public EventCallback EC_ValueChanged { get; set; } [Parameter] public List ListValues { get; set; } = new List(); /// /// Indica se sia possibile selezionare + valori /// [Parameter] public bool MultiSel { get; set; } = true; #endregion Public Properties #region Public Classes public class ItemData { #region Public Properties public string CodItem { get; set; } = ""; public int Ordinal { get; set; } = 0; public bool Selected { get; set; } = false; public string Text { get; set; } = ""; public string Tooltip { get; set; } = ""; #endregion Public Properties } #endregion Public Classes #region Protected Properties protected List ListValuesOrd { get => ListValues.OrderBy(x => x.Ordinal).ToList() ?? new List(); } #endregion Protected Properties #region Private Methods private string btnSel(bool selected) { return selected ? ClassSel : ClassDesel; } private async void ToggleVal(ItemData currItem) { currItem.Selected = MultiSel ? !currItem.Selected : true; // se non abilitata sel multipla if (!MultiSel) { // deseleziono gli altri... foreach (var item in ListValues) { if (!item.CodItem.Equals(currItem.CodItem)) { item.Selected = false; } } } await EC_ValueChanged.InvokeAsync(currItem); } #endregion Private Methods }