Как преобразовать строку в компоненты в Blazor? - PullRequest
0 голосов
/ 14 июля 2020

Я пытаюсь создать конструктор шаблонов, в котором элементы создаются динамически.

Сложность возникает, когда мне нужно разместить элементы на панели и просто в форме.

моя модель :

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

для отображения элементов на панели мне нужен еще один l oop с тегом 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>
                        }
}

Не могу понять, как показать компоненты на форме и на панели без дублирования циклов?

...