在后台代码中设置 RenderFragment 默认内容

Set RenderFragment default content in code behind

我有来自 article 的以下代码,它位于 .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>}
      ;
    }
}

有点自以为是,但我认为你有点夸大了'code-behind concept'。

ItemTemplate 只会在标记部分使用,我会选择(小)@code 部分:

@code {
  [Parameter] 
  public RenderFragment<TItem> ItemTemplate { get; set; } =
         item => @<li @key=item>@item.ToString()</li>;
}

根据 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();
            };