@bind 之后的 Blazor 事件

Blazor event after @bind

在 Blazor 页面中,我有一组复选框输入元素绑定到布尔值 属性,代码为

foreach(var item in items)
{
   <input type="checkbox" class="checkbox" @bind="@item.IsReady" @onclick="((e)=>ItemIsReady(item))" />
}

我正在寻找一种方法来在 绑定完成后触发函数 ItemIsReady 。目前该函数在绑定完成之前触发。

某种形式的@bind 指令是必要的,因为页面加载项目,加载后需要检查就绪项目。

我无法使用 属性 setter 中的函数。

有人知道怎么做吗?

“我正在寻找一种在绑定完成后触发函数 ItemIsReady 的方法。目前该函数在绑定完成之前触发。”

我假设您想对复选框所做的更改做出反应。也许我错了。

如果您想捕获更新事件,那么您可以:

  1. 使用绑定并捕获 属性 setter 或
  2. 上的事件
  3. 手动连接输入。

下面的演示页面展示了如何做到这一点:

@page "/Test"
@foreach (var item in model)
{
    <div><input type="checkbox" class="checkbox" checked="@item.IsReady" @onchange="((e)=>ItemIsReady(e, item))" /> <span>@item.IsReady</span></div>
}

@code  {

    List<ModelClass> model { get; set; } = new List<ModelClass> { 
       new ModelClass(), 
       new ModelClass() { IsReady=true }, 
       new ModelClass() 
    };

    class ModelClass
    {
        public bool IsReady { get; set; }
    }

    void ItemIsReady(ChangeEventArgs e, ModelClass item)
    {
        item.IsReady = (bool)e.Value;
    }
}