В файле Blazor .razor вы можете использовать @typeparam MyType
, чтобы использовать generi c параметры . Например:
MyComponent.razor
@typeparam MyType
<SomeHtml />
@code
{
[Parameter]
public List<MyType> MyList{ get; set; }
}
Так что вы можете позвонить:
<MyComponent MyType="MyTypeABC" MyList="@MyData.MyList" />
Но я предпочитаю код позади (razor.cs ), как я могу использовать параметр для типа типа @typeparam MyType
в файле razor.cs?
Мой текущий обходной путь :
MyComponent.razor
@inherits MyComponentCode<MyType>
@typeparam MyType
MyComponent.razor.cs
public class MyComponentCode<MyType> : ComponentBase
{
[Parameter]
public List<MyType> MyList{ get; set; }
}
Я пропускаю что-то вроде [TypeParameter]
, но, может быть, есть лучшие решения, есть идеи? Или, может быть, это общий вопрос о том, «как использовать razor @statements в коде позади».
Обновление с 2020-02-27:
С предложением Роджера Вольфа (см. Ниже), немного лучше:
MyComponent.razor
@typeparam MyType
MyComponent.razor.cs
public partial class MyComponent
{
[Parameter]
public List<MyType> MyList{ get; set; }
}
Вызов
<MyComponent MyType="MyTypeABC" />