如何在blazor中将字符串转换为组件?

时间:2020-07-14 12:20:52

标签: c# html string dynamic blazor

我正在尝试创建一个模板构造器,在其中动态创建元素。

当我需要将元素放置在面板中并且仅放置在表单上时,就会出现困难。

我的模特:

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>
                        }
}

我不明白如何在不重复循环的情况下在表单和面板上显示组件?

0 个答案:

没有答案