【发布时间】:2020-10-21 19:13:52
【问题描述】:
我目前正在开发一个 Blazor 项目。在这个项目中,我需要在我的 C# 代码中的列表中添加一些默认值。问题是我找不到将布尔方法返回值绑定到输入的“已检查”属性的方法。
代码:
我确实有一个列表,我正在将此列表中的每个条目添加一个输入(复选框)字段到我的 html:
@foreach (ProfessionViewModel prof in Professions)
{
<div class="form-group m-1">
<div class="form-check">
<input class="form-check-input" type="checkbox" id="@prof.Id"
@onchange="eventArgs => { ToggleProfessions(prof, eventArgs.Value); }" />
</div>
</div>
}
我找不到将“checked”属性绑定到检查该项目是否存在于其他列表(SelectedProfessions 列表,在@code 部分中定义)的方法的方法。
我的清单:
public List<ProfessionViewModel> SelectedProfessions { get; set; } = new List<ProfessionViewModel>();
我的布尔返回方法:
private bool CheckIfProfessionIsAssigned(ProfessionViewModel prof)
{
if (SelectedProfessions.Contains(prof))
return true;
return false;
}
问题描述:
“专业”集合包含应用程序中可用的所有专业。在这种形式中,用户应该能够单独选择某些职业(用于职业过滤器)。 每个选定的职业都包含在“SelectedProfessions”集合中。问题是我无法根据帮助属性“CheckIfProfessionIsAssigned”绑定(或渲染)复选框值,该属性确定用户当前是否选择了该职业。
【问题讨论】:
-
我会使用一个视图模型,其中包含每个专业的布尔检查属性,然后将该属性绑定到输入。获取列表只是一个检查专业的 linq 查询