我正在使用 MudBlazor DataGrid 和使用 TemplateColumn 自定义颜色的单元格。我想使用 EditMode="DataGridEditMode.Cell" 进行内联编辑,但是当我这样做时,我会丢失 TemplateColumn。
有没有办法只为选定的行打开内联编辑?使用 DataGridEditTrigger.OnRowClick" 不起作用。
我认为您可以使用
PropertyColumn
而不是 TemplateColumn
来使单元格内联编辑工作。
<MudDataGrid Items="@Tests" T="Test" ReadOnly="false" EditMode="DataGridEditMode.Cell" >
<Columns>
<PropertyColumn Property="x => x.Id" Title="Id" />
<PropertyColumn Property="x=>x.Compliant" Title="Compliant"/>
<PropertyColumn Property="x=>x" Title="Compliant Color">
<EditTemplate>
<MudTextField Style="@(context.Item.Compliant.StartsWith("N")?"color: red":"")" @bind-Value="context.Item.Compliant"></MudTextField>
</EditTemplate>
</PropertyColumn>
</Columns>
</MudDataGrid>
@code {
private List<Test> Tests = new()
{
new Test { Id = 1, Compliant = "Yes"},
new Test { Id = 2, Compliant = "No" }
};
public class Test
{
public int Id { get; set; }
public string Compliant { get; set; }
}
}
当您通过“EditTemplate”修改“PropertyColumn”时,“Property”是什么并不重要。所以只需使用
Property="x=>x"
。