private IRenderedComponent <Table <Person> > CreatePersonsTable( IReadOnlyList <Person> persons, Action <ComponentParameterBuilder <Table <Person> > > callback = null, bool enableSelection = false) { return(Context.RenderComponent <Table <Person> >(x => { x .Add(b => b.DataSource, persons) .Add(b => b.ChildContent, p => { var selection = new ComponentParameterBuilder <Selection>() .Add(q => q.Key, p.Id.ToString()) .Build() .ToComponentRenderFragment <Selection>(); var nameCol = new ComponentParameterBuilder <Column <string> >() .Add(q => q.Field, p.Name) .Build() .ToComponentRenderFragment <Column <string> >(); var surnameCol = new ComponentParameterBuilder <Column <string> >() .Add(q => q.Field, p.Surname) .Build() .ToComponentRenderFragment <Column <string> >(); return builder => { if (enableSelection) { selection(builder); } nameCol(builder); surnameCol(builder); }; } ); callback?.Invoke(x); } )); }