| File: Columns\TemplateColumn.cs | Web Access |
| Project: src\aspnetcore\src\Components\QuickGrid\Microsoft.AspNetCore.Components.QuickGrid\src\Microsoft.AspNetCore.Components.QuickGrid.csproj (Microsoft.AspNetCore.Components.QuickGrid) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using Microsoft.AspNetCore.Components.Rendering; namespace Microsoft.AspNetCore.Components.QuickGrid; /// <summary> /// Represents a <see cref="QuickGrid{TGridItem}"/> column whose cells render a supplied template. /// </summary> /// <typeparam name="TGridItem">The type of data represented by each row in the grid.</typeparam> public class TemplateColumn<TGridItem> : ColumnBase<TGridItem> { private static readonly RenderFragment<TGridItem> EmptyChildContent = _ => builder => { }; /// <summary> /// Specifies the content to be rendered for each row in the table. /// </summary> [Parameter] public RenderFragment<TGridItem> ChildContent { get; set; } = EmptyChildContent; /// <inheritdoc/> [Parameter] public override GridSort<TGridItem>? SortBy { get; set; } /// <inheritdoc /> protected internal override void CellContent(RenderTreeBuilder builder, TGridItem item) => builder.AddContent(0, ChildContent(item)); /// <inheritdoc /> protected override bool IsSortableByDefault() => SortBy is not null; }