我正在使用Blazorise DataGrid,我想制作一个自定义的DataGridColumn,其中DisplayTemplate被预先设置为模板,但如果我从DataGridColumn派生,我不知道应该如何设置DisplayTemplate。我从这个开始
@typeparam TItem
@inherits DataGridColumn<TItem>
但后来我不知道如何将DisplayTemplate渲染片段设置为剃刀片段。
相反,我也尝试只制作一个包含DataGridColumn的组件,并在我的DataGrid中引用它,但不管我把它放在DataGrid的哪里,它总是在最后。
我可能设计错了树,但我有很多实现接口的类,我总是想为实现该接口的任何类型的任何数据网格中的特定列设置相同的DisplayTemplate。因此,为此目的生成DataGridColumn派生类型似乎是合理的。
您可以在代码部分的派生类中填充DisplayTemplate:
@typeparam TItem
@inherits DataGridColumn<TItem>
@{
base.BuildRenderTree(__builder);
}
@code {
protected override void OnInitialized()
{
base.OnInitialized();
this.DisplayTemplate = (TItem item) => @<CustomDisplayTemplate T="TItem" Item="@item" />;
}
}
为了实现这一点,您需要定义一个名为CustomDisplayTemplate:的独立Blazor组件
@typeparam T
<h2>@Item.ToString()</h2>
@code {
[Parameter]
public T Item { get; set; }
}