你如何在Blazor中正確連接動態創建的按鈕?

.net-standard blazor c# razor

我對網絡前端相當陌生,但我認為在我正在顯示的矩陣中為每個'缺陷'切換按鈕會很棒(所以你可以選擇一個回溯矩陣的路徑)。

幸運的是,我想出瞭如何在Blazor中動態製作按鈕......不幸的是,我似乎無法弄清楚如何“連接”按鈕。

如果我靜態地製作一個按鈕,我可以說onclick =“@(()=> alignment.ChangeArrow(1))”為第一個缺陷位置,用2替換1代表第二個等等...

在下面的代碼片段中給它1(而不是i)使得所有按鈕都適用於第一個缺陷,但是如果我給它變量i那麼它根本不起作用?

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

是否有更好的Blazor,網絡方式來做我正在談論的事情?

感謝您的指導。

一般承認的答案

嘗試這個:

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



許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因