Дочерние компоненты как родительские свойства в Blazor - PullRequest
0 голосов
/ 11 июля 2019

Я хочу создать DataGrid компонент, который может указывать GridColumns, как показано в коде ниже:

<DataGrid Items="@GridData">
    <DataGridColumns>
        <DataGridColumn Field="OrderId" Header="Order Id" Width="100"></GridColumn>
        <DataGridColumn Field="OrderDate" Header="Order Date" Width="120"></GridColumn>
    </GridColumns>
</DataGrid>

DataGrid - это шаблонное определение компонента, как показано ниже:

@typeparam TItem

@functions {
    [Parameter] RenderFragment GridColumns { get; set; }
    [Parameter] IReadOnlyList<TItem> Items { get; set; }
}

До сих пор я был в состоянии получить содержимое в свойстве DataGridColumns.Мое намерение состоит в том, чтобы получить каждый DataGridColumn как коллекцию для настройки рендеринга HTML с помощью циклического прохождения каждого элемента, но до сих пор я не могу понять, как подойти к этому решению.

Например, требуемый рендеринг HTML:

<div>
    <colgroup>
        <col style="width: 100px;">
        <col style="width: 120px;">
    </colgroup>
    <thread>
        <tr>
            <th>
                <div style="text-align: right;">
                    <span>Order Id</span>
                </div>
            </th>
            <th>
                <div style="text-align: right;">
                    <span>Order Date</span>
                </div>
            </th>
        </tr>
    </thread>
    <!-- ... Rest of the HTML ... -->
</div>

Цените любые указания или указания в этом отношении.

...