Я пытался найти ответ безрезультатно. Если у меня есть следующий код:
<MyObject Value="@SomeVariable" ValueChanged="@((decimal? value) => MyFunction())"
Где @SomeVariable
, в данном примере, типа decimal?
, MyObject
является типизированным объектом c ( IE MyObject<T>
)
Если бы MyObject
был нормальным классом, я мог бы написать код следующим образом:
<MyObject Value="@SomeVariable" ValueChanged="@(_ => MyFunction())"
Однако, если это * * * * * * * * * * * Типичный объект, типизированный объект c, я получаю следующее исключение:
Error CS1503 Argument 4: cannot convert from 'Microsoft.AspNetCore.Components.EventCallback' to 'Microsoft.AspNetCore.Components.EventCallback<decimal?>
Есть предложения о том, как решить эту проблему? Я имею в виду, конечно, я могу просто оставить отброшенную переменную внутри, но это выглядит как грязный код для этого.
* Редактировать, чтобы ответить на вопрос *
подпись класса / свойства basi c будет выглядеть так:
namespace MyNamespace
{
public class MyObject<T> : ComponentBase
{
[Parameter] public T Value { get; set; }
[Parameter] public EventCallback<T> ValueChanged { get; set; }
}
}