@typeparam TModel @typeparam TId @foreach (var item in models) { @GetName(item) } @code { [Parameter] public Variant Variant { get; set; } [Parameter] public string Label { get; set; } [Parameter] public Func GetName { get; set; } [Parameter] public Func>> GetDataFunc { get; set; } IEnumerable models = Enumerable.Empty(); [Parameter] public TId Value { get; set; } [Parameter] public EventCallback ValueChanged { get; set; } private TModel model; TModel Model { get { return model; } set { model = value; Value = (TId)(typeof(TModel).GetProperty("Id").GetValue(model)); InvokeAsync(async () => await ValueChanged.InvokeAsync(Value)); } } protected override async Task OnInitializedAsync() { models = await GetDataFunc(); } }