MudBlazor MudDataGrid中StartEditingItemAsync无法触发StartedEditingItem事件
MudDataGrid手动编辑未触发StartedEditingItem事件的解决方案
你的问题核心是调用StartEditingItemAsync时未传入当前行的实体实例,导致MudDataGrid无法识别要编辑的行,进而未触发StartedEditingItem事件。
修复步骤
- 修改按钮点击事件,传入当前行数据
在TemplateColumn的CellTemplate中,通过context.Item获取当前行的Meeting对象,将其作为参数传递给StartEditingItemAsync方法:
<TemplateColumn Title="Edit"> <CellTemplate> <MudIconButton Size="@Size.Small" Icon="@Icons.Material.Outlined.Edit" OnClick="@(()=>context.Actions.StartEditingItemAsync(context.Item))" /> </CellTemplate> </TemplateColumn>
- 可选:直接指定编辑单元格(针对Cell编辑模式)
如果你希望点击编辑按钮后直接进入某一列的编辑状态,可以使用StartEditingCellAsync方法,指定要编辑的列名(对应PropertyColumn的Property名称):
<MudIconButton Size="@Size.Small" Icon="@Icons.Material.Outlined.Edit" OnClick="@(()=>context.Actions.StartEditingCellAsync(context.Item, "Description"))" />
验证修改
修改后点击编辑按钮,StartedEditingItem事件会正常触发,行/单元格将进入编辑状态,后续的CanceledEditingItem和CommittedItemChanges事件也能正常响应。
内容的提问来源于stack exchange,提问作者Tyson Gibby
相关产品推荐
相关产品推荐

