Планируется ли в будущем Blazor поддерживать более естественную компонентную модель в XML, где вы можете объявить компоненты с родителями и детьми, как показано ниже:
<RadioGroup TItem="TestModel.TestEnum"
@bind-Value="@TestModel.Field5"
InlineLayout="@InlineLayout"
ValidationFor="@(() => TestModel.Field5)"
Label="RadioGroup Field 5 Horizontal">
<RadioItem Id="Enum1" Label="Enum 1" SelectedValue="TestModel.TestEnum.Enum1" />
<RadioItem Id="Enum2" Label="Enum 2" SelectedValue="TestModel.TestEnum.Enum2" />
<RadioItem Id="Enum3" Label="Enum 3" SelectedValue="TestModel.TestEnum.Enum3" />
</RadioGroup>
Я бы хотел, чтобы RadioGroup была родитель коллекции RadioItems. Каждый RadioItem будет содержать информацию о переключателе. Я хотел бы добавить RadioItems в RadioGroup, а затем из RadioGroup визуализировать каждый из RadioItems в качестве переключателей.
Однако, похоже, что элементы добавляются в коллекцию после того, как она пытается l oop вокруг коллекция элементов.
Этот код в родительском элементе выполняется до вызова OnInitialized в RadioItem.razor
RadioGroup.razor:
@foreach (RadioItem<TItem> item in Items)
{
@if (!string.IsNullOrEmpty(item.Label))
{
<InputRadio Id="@item.Id" Label="@item.Label" SelectedValue="@item.SelectedValue" @bind-Value="@CurrentValue" />
}
}
RadioItem.razor:
[CascadingParameter]
public RadioGroup<TItem> Parent { get; set; }
protected override void OnInitialized()
{
Parent.AddChild(this);
}
Есть ли способ добавить элементы в родительскую коллекцию до того, как RadioGroup попытается отобразить коллекцию RadioItems?