我试着像这样传递和调用函数,但Visual Studio告诉我:将方法组'OnOk'转换为非委托类型'object'。您是否打算调用该方法?
我TestPage.razor
<div>
Some content..
</div>
@code {
async Task DeleteServer(Server server)
{
var parameters = new DialogParameters { ["server"] = server,
["Title"] = "Title Text !!!",
["ContentText"] = "Content text !!!",
["OkBtnText"] = "Окейси",
["OkButtonDisabled"] = true,
["OnOk"] = OnOk
};
var dialog = DialogService.Show<Modal>("Delete Server", parameters);
var result = await dialog.Result;
if (!result.Cancelled)
{
Guid.TryParse(result.Data.ToString(), out Guid deletedServer);
Servers.RemoveAll(item => item.Id == deletedServer);
}
}
private void OnOk()
{
Console.WriteLine("Ok Cliked");
}
和Modal.razor
<DialogActions>
<MudButton Color="Color.Success" OnClick="Cancel">Cancel</MudButton>
<MudButton OnClick=@HandleOkClicked>@OkBtnText</MudButton>
</DialogActions>
@code {
[Parameter]
public EventCallback OnOk { get; set; }
private void HandleOkClicked()
{
OnOk.InvokeAsync();
}
}
试试这个:
var parameters = new DialogParameters
{
...
["OnOk"] = EventCallback.Factory.Create(this, OnOk)
};