在 MudBlazor DataGrid 中,如何使用内联编辑并使用 TemplateColumn?

问题描述 投票:0回答:1

我正在使用 MudBlazor DataGrid 和使用 TemplateColumn 自定义颜色的单元格。我想使用 EditMode="DataGridEditMode.Cell" 进行内联编辑,但是当我这样做时,我会丢失 TemplateColumn。

有没有办法只为选定的行打开内联编辑?使用 DataGridEditTrigger.OnRowClick" 不起作用。

https://try.mudblazor.com/snippet/wYcIPPcvKUrbAtTK

blazor mudblazor
1个回答
0
投票

我认为您可以使用

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"

© www.soinside.com 2019 - 2024. All rights reserved.