MudBlazor:单击“确定”按钮时防止关闭 MudDialog
Posted
技术标签:
【中文标题】MudBlazor:单击“确定”按钮时防止关闭 MudDialog【英文标题】:MudBlazor: Prevent closing MudDialog when clicking on OK button 【发布时间】:2021-11-24 23:29:26 【问题描述】:当用户单击“确定”按钮时,有没有办法防止关闭MudDialog
?我想在执行操作时保持对话框打开。
private async Task OpenMyDialogAsync()
var dialog = DialogService.Show<MyDialog>("My Dialog");
var result = await dialog.Result;
if (!result.Cancelled)
// Prevent closing the dialog when user click the OK button
// to perform an action
另一个想法是在MyDialog
实例上注册一个事件。但是Show()
方法返回的结果不包含MyDialog
实例。有什么想法可以解决这个问题吗?
【问题讨论】:
【参考方案1】:那为什么要关闭它呢?您的“确定”按钮有一个OnClick
。
而不是这个:
<MudButton Color="Color.Primary" OnClick="Submit">Ok</MudButton>
void Submit() => MudDialog.Close(DialogResult.Ok(true));
这样做:
<MudButton Color="Color.Primary" OnClick="RunMyStuff">Ok</MudButton>
void RunMyStuff()
// Run your stuff here
// Done
Submit();
void Submit() => MudDialog.Close(DialogResult.Ok(true));
【讨论】:
您的解决方案中的问题是业务逻辑应该在对话框本身中。对于不是最佳方式的可重用组件。我想将逻辑保留在组件之外。我想要 WinForms 中的FormClosingEventArgs
之类的东西,您可以在其中取消事件,从而防止对话框关闭。
或者您在服务/接口中有业务逻辑,然后从对话框中触发它?
嗯,这是一个解决方法的好主意。谢谢你的提示!以上是关于MudBlazor:单击“确定”按钮时防止关闭 MudDialog的主要内容,如果未能解决你的问题,请参考以下文章
当我单击搜索按钮时,防止 ProgressDialog 被关闭(Android)
单击对话框内的asp按钮时,如何防止关闭jQuery模式对话框?