Comment raccordez-vous correctement les boutons créés dynamiquement dans Blazor?

.net-standard blazor c# razor

Question

Je suis assez nouveau sur le web, mais je pense que ce serait bien d’avoir des boutons à bascule pour chaque "défaut" dans une matrice que j’affichais (pour que vous puissiez choisir un chemin qui remonte la matrice).

Heureusement, j'ai découvert comment créer des boutons de manière dynamique dans Blazor ... Malheureusement, je n'arrive pas à comprendre comment "câbler" les boutons.

Si je faisais statiquement un bouton, je pourrais dire onclick = "@ (() => alignment.ChangeArrow (1))" pour le premier emplacement de défaut, remplacez le 1 par un 2 pour le second, etc ...

En lui donnant 1 (au lieu de i) dans l'extrait de code ci-dessous, tous les boutons fonctionnent pour le 1er défaut, mais si je lui donne la variable i, alors ça ne marche pas du tout?

@for (int i = 0; i < alignment.FlawList.Count; i++)
{
    <button class="button" style="background-color:@alignment.ReturnColor(i)" onclick="@(()=>alignment.ChangeArrow(i))">@alignment.FlawList[i] @i</button>
}

Existe-t-il un meilleur Blazor, un moyen Web de faire ce dont je parle?

Merci pour tout conseil.

Réponse acceptée

Essaye ça:

@for (int i = 0; i < alignment.FlawList.Count; i++)
{
   var local_i = i;
    <button class="button" style="background-color:@alignment.ReturnColor(local_i)" onclick="@(()=>alignment.ChangeArrow(local_i))">@alignment.FlawList[local_i] @local_i</button>
}



Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi