Hug*_* A. 2 c# blazor blazor-server-side
我将一篇文章中的以下代码放置在 .razor 文件中。如何将 wig-pig 代码部分转换为 .razor.cs 文件后面的代码?
[Parameter] public RenderFragment<TItem> ItemTemplate { get; set; }
protected override void OnParametersSet()
{
if (ItemTemplate == null)
{
ItemTemplate = (item) => @:@{
<li @key=item>@item.ToString()</li>}
;
}
}
Run Code Online (Sandbox Code Playgroud)
有点固执己见,但我认为你有点夸大了“代码隐藏概念”。
ItemTemplate 只能在标记部分中使用,我会选择(小)@code 部分:
@code {
[Parameter]
public RenderFragment<TItem> ItemTemplate { get; set; } =
item => @<li @key=item>@item.ToString()</li>;
}
Run Code Online (Sandbox Code Playgroud)
根据 Magoo 先生的评论:
[Parameter]
public RenderFragment<TItem> ItemTemplate { get; set; }
= (TItem item) => (builder) =>
{
builder.OpenElement(0, "li");
builder.SetKey(item);
builder.AddContent(1, item.ToString());
builder.CloseElement();
};
Run Code Online (Sandbox Code Playgroud)