Wie verdrahten Sie in Blazor dynamisch erzeugte Buttons?

.net-standard blazor c# razor

Frage

Ich bin ziemlich neu im Web-Frontend, aber ich dachte, es wäre toll, Umschaltknöpfe für jeden "Fehler" in einer Matrix zu haben, die ich anzeigte (so können Sie einen Pfad wählen, der die Matrix zurückverfolgt).

Glücklicherweise habe ich herausgefunden, wie man Knöpfe in Blazor dynamisch macht ... Leider kann ich nicht herausfinden, wie man die Knöpfe "verdrahtet".

Wenn ich statisch eine Taste drücken würde, könnte ich onclick = "@ (() => alignment.ChangeArrow (1))" für die erste Fehlerstelle sagen, die 1 durch eine 2 für die zweite ersetzen, etc ...

Wenn Sie es im folgenden Code-Snippet 1 (statt i) geben, funktionieren alle Buttons für den ersten Fehler, aber wenn ich ihm die Variable i gebe, funktioniert es überhaupt nicht?

@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>
}

Gibt es einen besseren Blazor, Web-Art zu tun, worüber ich spreche?

Danke für jede Anleitung.

Akzeptierte Antwort

Versuche dies:

@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>
}



Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum