在 Blazor 中,可以使用委托来替代 ICommand。通过创建一个委托,将其传递给组件的参数,就可以达到与 ICommand 相同的效果。
以下是使用委托的代码示例:
@using System
@using System.Threading.Tasks
@code {
private Func SayHelloDelegate { get; set; }
protected override Task OnParametersSetAsync()
{
SayHelloDelegate = SayHello;
return base.OnParametersSetAsync();
}
private async Task SayHello()
{
await Task.Delay(1000);
Console.WriteLine("Hello world!");
}
}
在上面的示例代码中,在组件的参数中添加了一个委托 Func
,它接收一个 Task
,当按钮被点击时,可以调用该委托来执行相应的方法。同样,可以使用这种方法来替代其他实现 ICommand
的方案。