Почему PropertyColumns не может вывести параметры типа при передаче в оболочку?C#

Место общения программистов C#
Ответить
Anonymous
 Почему PropertyColumns не может вывести параметры типа при передаче в оболочку?

Сообщение Anonymous »

Я использую MudDataGrid MudBlazor, который работает очень похоже на QuickGrid Blazor. Содержимое сетки определяется параметром RenderFragment с именем Columns, который содержит список поисков свойств, в основном основанных на дереве выражений:

Код: Выделить всё









Review





@code {
[Parameter] public List Widgets { get; set;}
}
По сути MudDataGrid на самом деле представляет собой универсальный класс MudDataGrid. Его параметр Items имеет тип IEnumerable, поэтому объект может автоматически определить, что такое T, на основе того, что я передаю (в данном случае T=Widget). Это хорошо.
Однако теперь я хочу создать оболочку для всех моих MudDataGrid, обеспечивающую единообразный стиль и конфигурацию. Назовите его CustomDataGrid.

Код: Выделить всё

@typeparam T



@* Custom config stuff *@


@* Custom config stuff *@



@code {
[Parameter] public IEnumerable? Items { get; set; }

[Parameter] public RenderFragment Columns { get; set; }

// ...

}
Теперь давайте вернемся к нашему исходному компоненту отображения виджетов:

Код: Выделить всё









Review





@code {
[Parameter] public List Widgets { get; set;}
}
Это вызывает исключение времени компиляции для каждого столбца, сообщающее, что он не может вывести параметры типа:

Код: Выделить всё

Components_Pages_WidgetDisplay_razor.g.cs(743,98): Error CS0411 : The type arguments for method 'TypeInference.CreatePropertyColumn_4(RenderTreeBuilder, int, int, Expression, int, string, int, bool?)' cannot be inferred from the usage.  Try specifying the type arguments explicitly.
Это можно исправить, вручную указав T и TProperty для каждого столбца таблицы:

Код: Выделить всё









Review





@code {
[Parameter] public List Widgets { get; set;}
}
Это раздражает, и я не хочу терять возможности Razor по выведению типов, просто создавая компонент-оболочку.
Есть ли какой-нибудь способ настроить CustomDataGrid, чтобы он мог выводить переменные типа своих столбцов?

Подробнее здесь: https://stackoverflow.com/questions/798 ... -a-wrapper
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»