Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to create reusable RenderFragments with multiple params

Tags:

blazor

I was wondering, if it is possible to create reusable RenderFragments with multiple params. There are Microsoft Docs examples with 1 parameter, but not with multiple. Is it possible?

I want to have something like this:

@Row("text1", "text2");

@code {    
    RenderFragment<string, string> Row = (string col1, string col2) => __builder =>
    {
        <div class="row">
            <div class="col-5 align-self-center">
                @col1
            </div>
            <div class="col align-self-center">
                @col2
            </div>
        </div>
    }
}
like image 710
MucoBey Avatar asked Mar 07 '26 10:03

MucoBey


1 Answers

You may do that like this:

@Row(("text1", "text2"))


@code 
{  
   RenderFragment<(string col1, string col2)> Row => value => __builder =>
   {
     <div class="row">
        <div class="col-5 align-self-center">
            @value.col1
        </div>
        <div class="col align-self-center">
            @value.col2
        </div>
     </div>
   };
}

UPDATE

@Row(("text1", "text2", Message("This is my message")))

@code 
{
     RenderFragment<(string col1, string col2, RenderFragment fragnment)> Row => value => __builder =>
    {
    <div class="row">
        <div class="col-5 align-self-center">
            @value.col1
        </div>
        <div class="col align-self-center">
            @value.col2
        </div>
        <div class="col align-self-center">
            @value.fragnment
        </div>
    </div>
    };

    RenderFragment<string> Message => (message) => __builder =>
     { <h1>@message</h1>;
    };

}
like image 138
enet Avatar answered Mar 11 '26 09:03

enet