Blazor - 绑定到对象集合
Blazor - Binding to a collection of objects
Blazor 预览版 v9
将 EditForm
绑定到对象集合需要什么?当我将 EditForm
设置为对象集合时,公开并绑定它们的 bool
属性,当您单击复选框时,它们会立即取消选中。
@page "/sompage"
<EditForm Model="MyModel">
@foreach(var item in MyModel.Items)
{
<label>
<InputCheckbox @bind-Value="item.BoolProperty" />
@item.Text</label>
}
</EditForm>
@code
{
public class SomeModel
{
public IEnumerable<SomeItem> Items { get;set; } = new List<SomeItem>();
}
public class SomeItem
{
public string Text { get;set; }
public bool BoolProperty { get;set; }
}
}
与 ASP.NET 绑定非常相似的解决方案是公开可变集合。由于我最初将 Items
公开为 IEnumerable<SomeItem>
,Blazor 的绑定魔法无法更新目标集合。
改变 Items
List<SomeItem>
就可以做到这一点。
Blazor 预览版 v9
将 EditForm
绑定到对象集合需要什么?当我将 EditForm
设置为对象集合时,公开并绑定它们的 bool
属性,当您单击复选框时,它们会立即取消选中。
@page "/sompage"
<EditForm Model="MyModel">
@foreach(var item in MyModel.Items)
{
<label>
<InputCheckbox @bind-Value="item.BoolProperty" />
@item.Text</label>
}
</EditForm>
@code
{
public class SomeModel
{
public IEnumerable<SomeItem> Items { get;set; } = new List<SomeItem>();
}
public class SomeItem
{
public string Text { get;set; }
public bool BoolProperty { get;set; }
}
}
与 ASP.NET 绑定非常相似的解决方案是公开可变集合。由于我最初将 Items
公开为 IEnumerable<SomeItem>
,Blazor 的绑定魔法无法更新目标集合。
改变 Items
List<SomeItem>
就可以做到这一点。