小编Mic*_*ger的帖子

具有动态列的 MudBlazor

我想创建一种使用 MudBlazor Datagrid 中的 PropertyColumn 创建动态列的方法。

<MudDataGrid @ref=_grid Items="GetItems(Model.ModelClass.Object, Items)">
    <Columns>
   @foreach(ListViewColumn col in Listview.Columns.OrderBy(x => x.Index))
    {
        <PropertyColumn Property="@MakeExpression(col, Model.ModelClass.Object, PropertyMatch(col).PropertyType)" Title="@col.Caption" />
    }
    </Columns>
</MudDataGrid>
@code{

    Expression<Func<T, P>> MakeExpression<T, P>(ListViewColumn col, T obj, P item) where T : Type
    {  
        var text = $"x => x.{col.PropertyName}";
        return System.Linq.Dynamic.Core.DynamicExpressionParser.ParseLambda<T, P>(new System.Linq.Dynamic.Core.ParsingConfig(), true, text);
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,它仍然给我一个例外:类型“Type”中不存在属性或字段“String1”

String1 是 propertyName.. Model.ModelClass.Object 是反映 MudDataGrid 的 T 的类型

如何修复我的 Expression<Func<T,P>> 方法?

c# blazor mudblazor

4
推荐指数
1
解决办法
1986
查看次数

标签 统计

blazor ×1

c# ×1

mudblazor ×1