Beispiel #1
0
        public override void RenderElement(RenderContext context, Action <TagBuilder> onRender = null)
        {
            if (SkipRender(context))
            {
                return;
            }

            var contBind = GetBinding(nameof(Content));

            var tr = new TagBuilder("tr");

            onRender?.Invoke(tr);
            MergeAttributes(tr, context);

            if (HideEmpty && GetBinding(nameof(If)) == null && contBind != null)
            {
                tr.MergeAttribute("v-if", contBind.GetPathFormat(context));
            }

            tr.RenderStart(context);

            var nameCell = new TagBuilder("td", "prop-name");
            var nameBind = GetBinding(nameof(Name));

            if (nameBind != null)
            {
                nameCell.MergeAttribute("v-text", nameBind.GetPathFormat(context));
            }
            nameCell.RenderStart(context);
            if (!String.IsNullOrEmpty(Name))
            {
                context.Writer.Write(context.LocalizeCheckApostrophe(Name));
            }
            nameCell.RenderEnd(context);

            var valCell = new TagBuilder("td", "prop-value");

            valCell.AddCssClassBoolNo(Bold, "bold");
            if (contBind != null)
            {
                valCell.MergeAttribute("v-text", contBind.GetPathFormat(context));
                if (contBind.NegativeRed)
                {
                    valCell.MergeAttribute(":class", $"$getNegativeRedClass({contBind.GetPath(context)})");
                }
            }
            valCell.RenderStart(context);
            if (Content is UIElementBase)
            {
                (Content as UIElementBase).RenderElement(context);
            }
            else if (Content != null)
            {
                context.Writer.Write(context.LocalizeCheckApostrophe(Content.ToString()));
            }
            valCell.RenderEnd(context);

            tr.RenderEnd(context);
        }
Beispiel #2
0
        public TagBuilder Render(RenderContext context, TagRenderMode mode = TagRenderMode.Normal, Boolean addSpace = false)
        {
            switch (mode)
            {
            case TagRenderMode.SelfClosing:
                context.Writer.Write(CreateStartTag(context, true));
                break;

            case TagRenderMode.StartTag:
                context.Writer.Write(CreateStartTag(context, false));
                break;

            case TagRenderMode.Normal:
                context.Writer.Write(CreateStartTag(context, false));
                context.Writer.Write(context.LocalizeCheckApostrophe(InnerText));
                context.Writer.Write($"</{TagName}>");
                break;

            case TagRenderMode.EndTag:
                context.Writer.Write($"</{TagName}>");
                break;
            }
            if (addSpace)
            {
                context.Writer.WriteLine();
            }
            _bRender = true;
            return(this);
        }
Beispiel #3
0
        void RenderHeader(RenderContext context)
        {
            if (!HasHeader)
            {
                return;
            }
            var header = new TagBuilder("div", "panel-header-slot");

            header.MergeAttribute("slot", "header");
            header.RenderStart(context);

            RenderIcon(context, Icon);

            var hBind = GetBinding(nameof(Header));

            if (hBind != null)
            {
                var span = new TagBuilder("span");
                span.MergeAttribute("v-text", hBind.GetPathFormat(context));
                span.Render(context);
            }
            else if (Header is UIElementBase)
            {
                (Header as UIElementBase).RenderElement(context);
            }
            else if (Header != null)
            {
                context.Writer.Write(context.LocalizeCheckApostrophe(Header.ToString()));
            }
            RenderHint(context);
            header.RenderEnd(context);
        }
Beispiel #4
0
        public override void RenderElement(RenderContext context, Action <TagBuilder> onRender = null)
        {
            if (SkipRender(context))
            {
                return;
            }
            var span = new TagBuilder("span", "tag-label", IsInGrid);

            MergeAttributes(span, context);

            var cbind = GetBinding(nameof(Content));

            if (cbind != null)
            {
                span.MergeAttribute("v-text", cbind.GetPathFormat(context));
            }

            var cStyle = GetBinding(nameof(Style));

            if (cStyle != null)
            {
                span.MergeAttribute(":class", cStyle.GetPathFormat(context));
            }
            else if (Style != TagLabelStyle.Default)
            {
                span.AddCssClass(Style.ToString().ToLowerInvariant());
            }

            span.RenderStart(context);
            if (Content is String)
            {
                context.Writer.Write(context.LocalizeCheckApostrophe(Content.ToString()));
            }
            span.RenderEnd(context);
        }
Beispiel #5
0
        void RenderFooter(RenderContext context)
        {
            if (!HasFooter)
            {
                return;
            }
            var f = new TagBuilder("div", "card-footer");

            f.RenderStart(context);
            var fb = GetBinding(nameof(Footer));

            if (fb != null)
            {
                var s = new TagBuilder("span");
                s.MergeAttribute(":text", fb.GetPathFormat(context));
                s.Render(context);
            }
            else if (Footer is UIElementBase fUiElem)
            {
                fUiElem.RenderElement(context);
            }
            else if (Footer is String fStr)
            {
                context.Writer.Write(context.LocalizeCheckApostrophe(fStr));
            }
            f.RenderEnd(context);
        }
Beispiel #6
0
        void RenderHeader(RenderContext context)
        {
            if (!HasHeader)
            {
                return;
            }
            var h = new TagBuilder("div", "card-header");

            h.RenderStart(context);
            var hb = GetBinding(nameof(Header));

            if (hb != null)
            {
                var s = new TagBuilder("span");
                s.MergeAttribute(":text", hb.GetPathFormat(context));
                s.Render(context);
            }
            else if (Header is UIElementBase hUiElem)
            {
                hUiElem.RenderElement(context);
            }
            else if (Header is String hStr)
            {
                context.Writer.Write(context.LocalizeCheckApostrophe(hStr));
            }
            RenderHint(context);
            h.RenderEnd(context);
        }
Beispiel #7
0
        public override void RenderElement(RenderContext context, Action <TagBuilder> onRender = null)
        {
            if (SkipRender(context))
            {
                return;
            }
            var span = new TagBuilder("span", null, IsInGrid);

            onRender?.Invoke(span);
            MergeAttributes(span, context);

            var cbind = GetBinding(nameof(Content));

            if (cbind != null)
            {
                span.MergeAttribute("v-html", $"$sanitize({cbind.GetPathFormat(context)})");
            }

            span.RenderStart(context);
            if (Content != null && Content is String)
            {
                context.Writer.Write(context.LocalizeCheckApostrophe(Content.ToString()));
            }
            span.RenderEnd(context);
        }
Beispiel #8
0
        public override void RenderElement(RenderContext context, Action <TagBuilder> onRender = null)
        {
            if (SkipRender(context))
            {
                return;
            }
            var span = new TagBuilder("span", "a2-badge", IsInGrid);

            onRender?.Invoke(span);
            MergeAttributes(span, context);

            var cbind = GetBinding(nameof(Content));

            if (cbind != null)
            {
                span.MergeAttribute("v-text", cbind.GetPathFormat(context));
                if (cbind.NegativeRed)
                {
                    span.MergeAttribute(":class", $"$getNegativeRedClass({cbind.GetPath(context)})");
                }
            }
            span.AddCssClassBool(Small, "small");

            span.RenderStart(context);
            if (Content is String)
            {
                context.Writer.Write(context.LocalizeCheckApostrophe(Content.ToString()));
            }
            span.RenderEnd(context);
        }
Beispiel #9
0
        void RenderHeader(RenderContext context)
        {
            var header = new TagBuilder("div", "modal-header");

            header.MergeAttribute("v-drag-window", String.Empty);
            header.RenderStart(context);
            var hdr = GetBinding(nameof(Title));

            if ((hdr != null) || (Title != null))
            {
                var span = new TagBuilder("span");
                if (hdr != null)
                {
                    span.MergeAttribute("v-text", hdr.GetPathFormat(context));
                }
                else if (Title != null)
                {
                    span.SetInnerText(context.LocalizeCheckApostrophe(Title));
                }
                span.Render(context);
            }
            var close = new TagBuilder("button", "btnclose");

            if (NoClose)
            {
                close.MergeAttribute("disabled", "true");
            }
            else
            {
                close.MergeAttribute("@click.prevent", $"$inlineClose('{Id}', false)");
            }
            close.SetInnerText("&#x2715;");
            close.Render(context);
            header.RenderEnd(context);
        }
Beispiel #10
0
        public override void RenderElement(RenderContext context, Action <TagBuilder> onRender = null)
        {
            if (SkipRender(context))
            {
                return;
            }
            var label = new TagBuilder("div", "a2-label", IsInGrid);

            onRender?.Invoke(label);

            var contBind = GetBinding(nameof(Content));

            if (contBind != null)
            {
                label.MergeAttribute("v-text", contBind.GetPathFormat(context));
            }

            MergeAttributes(label, context);
            if (Align != TextAlign.Left)
            {
                label.AddCssClass("text-" + Align.ToString().ToLowerInvariant());
            }
            label.AddCssClassBool(Required, "required");

            label.RenderStart(context);

            if (Content != null)
            {
                context.Writer.Write(context.LocalizeCheckApostrophe(Content.ToString()));
            }

            label.RenderEnd(context);
        }
Beispiel #11
0
        void RenderDescription(RenderContext context)
        {
            var descBind = GetBinding(nameof(Description));

            if (descBind == null && Description == null)
            {
                return;
            }
            var span = new TagBuilder("span", "description");

            if (descBind != null)
            {
                span.MergeAttribute("v-text", descBind.GetPathFormat(context));
            }
            span.RenderStart(context);
            if (Description is UIElementBase descUi)
            {
                descUi.RenderElement(context);
            }
            else if (Description != null)
            {
                context.Writer.Write(context.LocalizeCheckApostrophe(Description.ToString()));
            }
            span.RenderEnd(context);
        }
Beispiel #12
0
        public override void RenderElement(RenderContext context, Action <TagBuilder> onRender = null)
        {
            if (SkipRender(context))
            {
                return;
            }
            var option = new TagBuilder("option");

            MergeAttributes(option, context, MergeAttrMode.Visibility);
            if (Value != null)
            {
                if (Value is IJavaScriptSource)
                {
                    var jsValue = (Value as IJavaScriptSource).GetJsValue(context);
                    option.MergeAttribute(":value", jsValue);
                }
                else
                {
                    option.MergeAttribute("value", Value.ToString());
                }
            }
            else
            {
                option.MergeAttribute(":value", "null");                 // JS null value
            }
            option.RenderStart(context);
            if (Content != null)
            {
                context.Writer.Write(context.LocalizeCheckApostrophe(Content));
            }
            option.RenderEnd(context);
        }
Beispiel #13
0
        public override void RenderElement(RenderContext context, Action <TagBuilder> onRender = null)
        {
            if (SkipRender(context))
            {
                return;
            }
            var tab = new TagBuilder("a2-tab-item");

            onRender?.Invoke(tab);
            // tab.MergeAttribute("tab-style", "yellow");
            tab.AddCssClassBool(FullHeight, "full-height");
            MergeAttributes(tab, context, MergeAttrMode.SpecialTab);
            var headerBind = GetBinding(nameof(Header));

            if (headerBind != null)
            {
                tab.MergeAttribute(":header", headerBind.GetPathFormat(context));
            }
            else if (Header is String)
            {
                tab.MergeAttribute("header", context.LocalizeCheckApostrophe(Header?.ToString()));
            }
            var badgeBind = GetBinding(nameof(Badge));

            if (badgeBind != null)
            {
                tab.MergeAttribute(":badge", badgeBind.GetPathFormat(context));
            }
            else if (Badge != null)
            {
                tab.MergeAttribute("badge", Badge);
            }
            if (Height != null)
            {
                tab.MergeStyle("height", Height.Value);
            }

            // show/hide support
            MergeBindingAttributeBool(tab, context, ":show", nameof(Show), Show);
            // emulate v-hide
            MergeBindingAttributeBool(tab, context, ":show", nameof(Hide), Hide, bInvert: true);

            tab.RenderStart(context);

            RenderChildren(context);

            tab.RenderEnd(context);
        }
Beispiel #14
0
 protected void RenderContent(RenderContext context, Object content)
 {
     // if it's a binding, it will be added via MergeAttribute
     if (content == null)
     {
         return;
     }
     if (content is UIElementBase uiBase)
     {
         uiBase.RenderElement(context);
     }
     else if (content != null)
     {
         context.Writer.Write(context.LocalizeCheckApostrophe(content.ToString().Replace("\\n", "<br>")));
     }
 }
Beispiel #15
0
        protected void RenderBadge(RenderContext context, String badge)
        {
            var badgeBind = GetBinding("Badge");

            if (badgeBind != null)
            {
                new TagBuilder("span", "badge")
                .MergeAttribute("v-text", badgeBind.GetPathFormat(context))
                .MergeAttribute("v-if", badgeBind.GetPathFormat(context))
                .Render(context);
            }
            else if (!String.IsNullOrEmpty(badge))
            {
                new TagBuilder("span", "badge")
                .SetInnerText(context.LocalizeCheckApostrophe(badge))
                .Render(context);
            }
        }
Beispiel #16
0
        public override void RenderElement(RenderContext context, Action <TagBuilder> onRender = null)
        {
            if (SkipRender(context))
            {
                return;
            }
            if (Space == SpaceMode.Before || Space == SpaceMode.Both)
            {
                context.Writer.Write("&#160;");
            }
            var span = new TagBuilder("span", null, IsInGrid);

            onRender?.Invoke(span);
            MergeAttributes(span, context);

            var cbind = GetBinding(nameof(Content));

            if (cbind != null)
            {
                span.MergeAttribute("v-text", MaxChars > 0 ? $"$maxChars({cbind.GetPathFormat(context)}, {MaxChars})" : cbind.GetPathFormat(context));
                if (cbind.NegativeRed)
                {
                    if (GetBinding(nameof(Color)) != null)
                    {
                        throw new XamlException("NegativeRed property is not compatible with Color binding");
                    }
                    span.MergeAttribute(":class", $"$getNegativeRedClass({cbind.GetPath(context)})");
                }
            }
            span.AddCssClassBool(Small, "small");
            span.AddCssClassBool(Big, "text-big");

            span.RenderStart(context);
            if (Content is String)
            {
                context.Writer.Write(context.LocalizeCheckApostrophe(Content.ToString()));
            }
            span.RenderEnd(context);
            if (Space == SpaceMode.After || Space == SpaceMode.Both)
            {
                context.Writer.Write("&#160;");
            }
        }
Beispiel #17
0
        void RenderHeader(RenderContext context)
        {
            var header = new TagBuilder("div", "modal-header");

            if (!Maximize)
            {
                header.MergeAttribute("v-drag-window", String.Empty);
            }
            header.RenderStart(context);
            var hdr = GetBinding(nameof(Title));

            if ((hdr != null) || (Title != null))
            {
                var span = new TagBuilder("span", "modal-title");
                if (hdr != null)
                {
                    span.MergeAttribute("v-text", hdr.GetPathFormat(context));
                }
                else if (Title != null)
                {
                    span.SetInnerText(context.LocalizeCheckApostrophe(Title));
                }
                span.Render(context);
            }
            if (TitleInfo != null)
            {
                var span = new TagBuilder("span", "modal-title-info");
                span.RenderStart(context);
                TitleInfo.RenderElement(context, null);
                span.RenderEnd(context);
            }
            var close = new TagBuilder("button", "btnclose");

            close.MergeAttribute("tabindex", "-1");
            close.MergeAttribute("@click.prevent", "$modalClose(false)");
            close.SetInnerText("&#x2715;");
            close.Render(context);

            RenderHelp(context);

            header.RenderEnd(context);
        }
Beispiel #18
0
        void RenderContent(RenderContext context)
        {
            var span    = new TagBuilder("span", "content");
            var cntBind = GetBinding(nameof(Content));

            if (cntBind != null)
            {
                span.MergeAttribute("v-text", cntBind.GetPathFormat(context));
            }
            span.RenderStart(context);
            if (Content is UIElementBase contUi)
            {
                contUi.RenderElement(context);
            }
            else if (Content != null)
            {
                context.Writer.Write(context.LocalizeCheckApostrophe(Content.ToString()));
            }
            span.RenderEnd(context);
        }
Beispiel #19
0
 internal void Render(RenderContext context)
 {
     foreach (var x in this)
     {
         if (x == null)
         {
             continue;
         }
         if (x is String)
         {
             context.Writer.Write(context.LocalizeCheckApostrophe(x.ToString()));
         }
         else if (x is Inline)
         {
             (x as Inline).RenderElement(context);
         }
         else
         {
             throw new XamlException($"Invalid inline element '{x.GetType().ToString()}'");
         }
     }
 }
Beispiel #20
0
        void RenderTitle(RenderContext context)
        {
            var titleBind = GetBinding(nameof(Title));

            if (titleBind != null || Title != null)
            {
                var title = new TagBuilder("legend");
                title.RenderStart(context);
                var span = new TagBuilder("span");
                if (titleBind != null)
                {
                    span.MergeAttribute("v-text", titleBind.GetPathFormat(context));
                }
                span.RenderStart(context);
                if (Title != null)
                {
                    context.Writer.Write(context.LocalizeCheckApostrophe(Title));
                }
                span.RenderEnd(context);
                RenderHint(context);
                title.RenderEnd(context);
            }
        }
Beispiel #21
0
        void RenderDesription(RenderContext context)
        {
            new Separator().RenderElement(context);
            var dBind = GetBinding(nameof(Description));
            var wrap  = new TagBuilder(null, "a2-tab-description");

            wrap.RenderStart(context);
            if (dBind != null)
            {
                var span = new TagBuilder("span");
                span.MergeAttribute("v-text", dBind.GetPathFormat(context));
                span.Render(context);
            }
            else if (Description is UIElementBase uiDescr)
            {
                uiDescr.RenderElement(context);
            }
            else if (Description != null)
            {
                context.Writer.Write(context.LocalizeCheckApostrophe(Description.ToString()));
            }
            wrap.RenderEnd(context);
        }
Beispiel #22
0
        void RenderBody(RenderContext context)
        {
            if (!HasBody)
            {
                return;
            }
            var hBody = new TagBuilder("div", "list-item-simple-body");
            var bBody = GetBinding(nameof(Content));

            if (bBody != null)
            {
                hBody.MergeAttribute("v-text", bBody.GetPathFormat(context));
            }
            hBody.RenderStart(context);
            if (Content is UIElementBase)
            {
                (Content as UIElementBase).RenderElement(context);
            }
            else if (Content != null)
            {
                context.Writer.Write(context.LocalizeCheckApostrophe(Content.ToString()));
            }
            hBody.RenderEnd(context);
        }
Beispiel #23
0
        public override void RenderElement(RenderContext context, Action <TagBuilder> onRender = null)
        {
            if (SkipRender(context))
            {
                return;
            }
            var po = new TagBuilder("popover", "a2-inline", IsInGrid);

            onRender?.Invoke(po);
            MergeAttributes(po, context, MergeAttrMode.All);
            po.AddCssClass("po-" + Placement.ToString().ToKebabCase());
            if (Background != PopoverBackgroundStyle.Default)
            {
                po.AddCssClass("po-" + Background.ToString().ToKebabCase());
            }
            if (Icon != Icon.NoIcon)
            {
                po.MergeAttribute("icon", Icon.ToString().ToKebabCase());
            }
            MergeBindingAttributeString(po, context, "content", nameof(Text), Text);
            if (Underline != PopoverUnderlineMode.Enable)
            {
                po.AddCssClass("underline-" + Underline.ToString().ToLowerInvariant());
            }

            var urlBind = GetBinding(nameof(Url));

            if (ShowOnHover)
            {
                po.MergeAttribute(":hover", "true");
                if (urlBind != null || !String.IsNullOrEmpty(Url))
                {
                    throw new XamlException("'ShowOnHover' and 'Url' are not compatible.");
                }
            }

            if (urlBind != null)
            {
                po.MergeAttribute(":url", urlBind.GetPathFormat(context));
            }
            else if (!String.IsNullOrEmpty(Url))
            {
                po.MergeAttribute("url", Url);
            }

            if (Width != null)
            {
                po.MergeAttribute("width", Width.Value);
            }

            if (Top != null)
            {
                po.MergeAttribute("top", Top.Value);
            }

            po.RenderStart(context);
            var cntBind = GetBinding(nameof(Content));

            if (cntBind != null)
            {
                var cont = new TagBuilder("span");
                cont.MergeAttribute("v-text", cntBind.GetPathFormat(context));
                cont.Render(context);
            }
            else if (Content is UIElementBase)
            {
                (Content as UIElementBase).RenderElement(context);
            }
            else if (Content != null)
            {
                context.Writer.Write(context.LocalizeCheckApostrophe(Content.ToString()));
            }
            RenderPopoverBadge(context);
            po.RenderEnd(context);
        }
Beispiel #24
0
        void RenderHyperlink(RenderContext context, Boolean inGrid, Action <TagBuilder> onRender = null, Boolean inside = false, Boolean addOn = false)
        {
            Boolean bHasDropDown = DropDown != null;

            var tag = new TagBuilder("a", "a2-hyperlink", inGrid);

            tag.MergeAttribute("href", "javascript:void(0)");
            onRender?.Invoke(tag);
            var attrMode = MergeAttrMode.All;

            if (inside)
            {
                attrMode &= ~MergeAttrMode.Visibility;
            }
            MergeAttributes(tag, context, attrMode);
            MergeCommandAttribute(tag, context);
            tag.AddCssClassBool(Block, "block");
            tag.AddCssClassBool(Highlight, "highlight");
            if (!Block)
            {
                tag.AddCssClass("a2-inline");
            }

            if (IsNavigateExternal())
            {
                tag.MergeAttribute("rel", "noopener");
            }

            if (Size != ControlSize.Default)
            {
                switch (Size)
                {
                case ControlSize.Small:
                    tag.AddCssClass("small");
                    break;

                case ControlSize.Large:
                    tag.AddCssClass("large");
                    break;

                case ControlSize.Normal:
                    tag.AddCssClass("normal");
                    break;

                default:
                    throw new XamlException("Only ControlSize.Small, ControlSize.Normal or ControlSize.Large are supported for the Hyperlink");
                }
            }

            if (bHasDropDown)
            {
                tag.MergeAttribute("toggle", String.Empty);
            }

            if (!String.IsNullOrEmpty(TestId) && context.IsDebugConfiguration)
            {
                tag.MergeAttribute("test-id", TestId);
            }

            tag.RenderStart(context);

            RenderIcon(context, Icon);
            var cbind = GetBinding(nameof(Content));

            if (cbind != null)
            {
                new TagBuilder("span")
                .MergeAttribute("v-text", cbind.GetPathFormat(context))
                .Render(context);
            }
            else if (Content is UIElementBase)
            {
                (Content as UIElementBase).RenderElement(context);
            }
            else if (Content != null)
            {
                context.Writer.Write(context.LocalizeCheckApostrophe(Content.ToString()));
            }

            if (bHasDropDown && !addOn && !HideCaret)
            {
                var bDropUp = (DropDown as DropDownMenu)?.IsDropUp;
                new TagBuilder("span", "caret")
                .AddCssClassBool(bDropUp, "up")
                .Render(context);
            }
            RenderHint(context);
            tag.RenderEnd(context);
        }
Beispiel #25
0
 void RenderBody(RenderContext context)
 {
     if (HasHeader)
     {
         var hTag  = new TagBuilder("div", "list-item-header");
         var bHead = GetBinding(nameof(Header));
         if (bHead != null)
         {
             hTag.MergeAttribute("v-text", bHead.GetPathFormat(context));
         }
         hTag.RenderStart(context);
         if (Header != null)
         {
             if (Header is UIElementBase)
             {
                 (Header as UIElementBase).RenderElement(context);
             }
             else
             {
                 context.Writer.Write(context.Localize(Header.ToString()));
             }
         }
         hTag.RenderEnd(context);
     }
     if (HasBody)
     {
         var hBody = new TagBuilder("div", "list-item-body");
         var bBody = GetBinding(nameof(Content));
         if (bBody != null)
         {
             hBody.MergeAttribute("v-text", bBody.GetPathFormat(context));
         }
         hBody.RenderStart(context);
         if (Content is UIElementBase)
         {
             (Content as UIElementBase).RenderElement(context);
         }
         else if (Content != null)
         {
             context.Writer.Write(context.LocalizeCheckApostrophe(Content.ToString()));
         }
         hBody.RenderEnd(context);
     }
     if (HasFooter)
     {
         var fTag  = new TagBuilder("div", "list-item-footer");
         var bFoot = GetBinding(nameof(Footer));
         if (bFoot != null)
         {
             fTag.MergeAttribute("v-text", bFoot.GetPathFormat(context));
         }
         fTag.RenderStart(context);
         if (Footer != null)
         {
             if (Footer is UIElementBase)
             {
                 (Footer as UIElementBase).RenderElement(context);
             }
             else
             {
                 context.Writer.Write(context.LocalizeCheckApostrophe(Footer.ToString()));
             }
         }
         fTag.RenderEnd(context);
     }
     if (CommandBar != null)
     {
         CommandBar.RenderElement(context, tag =>
         {
             tag.AddCssClass("list-item-commands");
         });
     }
 }