@page "/"
@foreach (var CI in CheckableItems)
{
<input type="checkbox" @bind="CI.IsSelected"
disabled="@(CheckableItems.Where(ai=>ai.IsSelected).Count() >= 3 && !CI.IsSelected)" />
@CI.Item!.Name <br />
}
You have selected items: @(string.Join(", ", CheckableItems.Where(ai => ai.IsSelected).Select(si=>si.Item.Name))) <br />
Having ID values: @(string.Join(", ", CheckableItems.Where(ai => ai.IsSelected).Select(si=>si.Item.ID.ToString()))) <br/>
Total item count: @(CheckableItems.Where(ai=>ai.IsSelected).Count().ToString())
@code {
public class MyItemClass // Change to whatever class you're selecting from
{
public int ID;
public string? Name;
}
public class CheckableItem
{
public MyItemClass? Item;
public bool IsSelected;
}
public List<MyItemClass> AllItems = new List<MyItemClass>();
public List<CheckableItem> CheckableItems= new List<CheckableItem>();
protected override void OnInitialized()
{
// Sample data-- can be anything you want to list
AllItems.Add(new MyItemClass { ID = 1, Name = "Moe"});
AllItems.Add(new MyItemClass { ID = 2, Name = "Curly" });
AllItems.Add(new MyItemClass { ID = 3, Name = "Larry" });
AllItems.Add(new MyItemClass { ID = 4, Name = "Mickey" });
AllItems.Add(new MyItemClass { ID = 5, Name = "Minnie" });
AllItems.Add(new MyItemClass { ID = 6, Name = "Donald" });
// Create bool Carrier
foreach (var _item in AllItems) CheckableItems.Add(new CheckableItem { Item = _item });
}
}