小编Eri*_*and的帖子

重写 BuildRenderTree 时是否可以获取 RenderFragments 列表?

我想知道是否可以在ChildContent组件的参数中引用子元素。我可以显式地或通过使用级联参数将值从父组件传递给子组件,但是父组件没有很好的方法来“了解” ChildContent RenderFragment. 一个可能的用例是一个组件,该组件获取在渲染过程中已添加到组件UIList的数量。UIListItemsUIList

我尝试重写BuildRenderTree组件上的方法以手动操作,ChildContent RenderFragment但我唯一的选择是渲染或忽略片段(我无法查看RenderFragment委托的内容)。

    protected override void BuildRenderTree(RenderTreeBuilder builder)
    {
        int seq = 0;
        base.BuildRenderTree(builder);
        builder.OpenElement(seq++, "div");
        builder.AddContent(seq++, this.ChildContent);
        builder.CloseElement();
    }
Run Code Online (Sandbox Code Playgroud)

我想知道下面这样的事情是否可能。请注意,下面的语法无效,只是一个说明要点的示例。

    protected int NumberOfItems{get;set;}

    protected override void BuildRenderTree(RenderTreeBuilder builder)
    {
        int seq = 0;
        base.BuildRenderTree(builder);
        builder.OpenElement(seq++, "div");
        foreach(var childFragment in this.ChildContent.GetFragments())
        {

           if(childFragment is UIListItem)
                NumberOfItems++;
           builder.AddContent(seq++,childFragment);
        }


        builder.CloseElement();
    }
Run Code Online (Sandbox Code Playgroud)

c# blazor asp.net-core-3.0

5
推荐指数
2
解决办法
6151
查看次数

标签 统计

asp.net-core-3.0 ×1

blazor ×1

c# ×1