Cześć,
Tworzę własny component w blazor korzystający z typu generycznego (@typeparam TItem).
Component posiada listę: private List<TItem> FilteredDataItems { get; set; }, które wyświetlane są w tabeli za pomocą componentu(?) Virtualize.
W przypadku, gdy dane mają być wyświetlone w prosty sposób to robię to w ten sposób:
<Virtualize Context="item" Items="FilteredDataItems">
<tr>
@foreach(var column in columns)
{
<td align="@column.HorizontalAlignment.ToString().ToLower()">
@GetValue(item, column)
</td>
}
</tr>
</Virtualize>
Gdzie GetValue to funkcja, która zwraca dane z obiektów przekonwertowane na string wg odpowiedniego formatu.
Próbuje jednak zaimplementować opcję wyświetlenia danych w inputach (Opcja edycji klikniętego wiersza). Nie bardzo wiem jak powiązać InputText (lub inny input) z moim obiektem. Próbowałem różnych wariantów w stylu:
<Virtualize Context="item" Items="FilteredDataItems">
<tr>
<EditForm Model="item">
<DataAnnotationsValidator />
@foreach(var column in columns)
{
<td align="@column.HorizontalAlignment.ToString().ToLower()">
@*@GetValue(item, column)*@
<InputText @bind-Value="typeof(TItem).GetProperty(Name).GetValue(item)" />
</td>
}
</EditForm>
</tr>
</Virtualize>
ale to nie działa. Czy możecie wskazać jak należy powiązać property z typu generycznego w EditForm?
Dane mogą być różnych typów a kolumny mogą być przestawiane.
Z góry dziękuję za pomoc.