你如何在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合法吗? 是的,了解原因