internal override void RenderChildren(RenderContext context, Action <TagBuilder> onRenderStatic = null) { foreach (var ch in Children) { ch.IsInGrid = true; if (ch is GridGroup gg) { var grpTemplate = new TagBuilder("template"); gg.MergeAttributes(grpTemplate, context, MergeAttrMode.Visibility); grpTemplate.RenderStart(context); foreach (var gc in gg.Children) { gc.IsInGrid = true; using (context.GridContext(GetRow(gc), GetCol(gc), GetRowSpan(gc), GetColSpan(gc), GetVAlign(gc))) { gc.RenderElement(context); } } grpTemplate.RenderEnd(context); } else { using (context.GridContext(GetRow(ch), GetCol(ch), GetRowSpan(ch), GetColSpan(ch), GetVAlign(ch))) { ch.RenderElement(context); } } } }
public void RenderElement(RenderContext context, Action <TagBuilder> onRender = null) { var parentGrid = FindParent <Grid>(); if (parentGrid != null) { foreach (var c in Children) { c.IsInGrid = true; using (context.GridContext(c)) { c.RenderElement(context); } } } else { foreach (var c in Children) { c.RenderElement(context); } } }