Blazor QuickGrid — добавление класса на основе значения свойства контекста элемента строки

Мне нужно добавить класс в ячейку строки на основе ее значения.

Что-то вроде:

      @inject DataSource Data

<div class="grid">
    <QuickGrid Items="@Data.People">
        <PropertyColumn Property="@(c => c.PersonId)" Sortable="true"  />
        <PropertyColumn Property="@(c => c.FirstName)" Sortable="true" />
        <PropertyColumn Property="@(c => c.LastName)" Sortable="true" />

        <PropertyColumn Property="@(c => c.BirthDate)" Format="yyyy-MM-dd" Sortable="true" Class="@GetClass(context.BirthDate)" />
    </QuickGrid>
</div>

@code {
    string GetClass(DateOnly birthDate) => birthDate.Year < 2000 ? "table-success" : "table-warning"; 
}

Я не могу получить доступ к свойству элемента из других параметров PropertyColumn.

Я пытался использовать TemplateColumn, но он работает только для тега внутри ячейки, а не для всей ячейки.

      <TemplateColumn>
    <div class="@GetClass(context.BirthDate)">
        @context.ToString("yyyy-MM-dd")
    </div>
</TemplateColumn>

Это также означает, что мне придется вручную обрабатывать сортировку столбца, который автоматически доступен через тег PropertyColumn.

0 ответов

Другие вопросы по тегам