|
// 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;
}
|