我正在尝试创建一个模板构造器,在其中动态创建元素。
当我需要将元素放置在面板中并且仅放置在表单上时,就会出现困难。
我的模特:
public enum TField
{
Edit,
DatePicker,
ComboBox,
DataComboBox,
Memo,
}
public class Field
{
public string FieldLabel { get; set; }
public byte Position { get; set; }
public TField TypeField { get; set; }
public string Value { get; set; }
}
public class Panel
{
public string Caption { get; set; }
public byte Position { get; set; }
public List<Field> Field { get; set; }
}
我将所有字段都写在常规列表中,以便稍后显示所有元素
@if (item.TypeComponent != TComponent.Panel)
{
fieldPanel.Add(DeserializeField(item.Component));
}
else
{
if (DeserializePanel(item.Component).Field != null)
foreach (var panel in DeserializePanel(item.Component).Field)
{
fieldPanel.Add(panel);
}
}
要在面板中显示元素,我需要另一个带有BSCard标签的循环。
@foreach (var field in fieldPanel)
{
<div class="form-group">
@if (field.TypeField == TField.Edit)
{
<label>@field.FieldLabel</label>
<InputText Id="CouponCode" Class="form-control" @bind-Value="field.Value"></InputText>
}
}
我不明白如何在不重复循环的情况下在表单和面板上显示组件?