扩展方法中的C#动作参数

野蛮的

我正在使用DevExpress构建网格,但是我正在尝试构建辅助方法以简化要生成的代码量。例如,以下简单示例生成一个网格列:

settings.Columns.Add(column =>
{
    column.FieldName = "StatusId";
    column.Caption = "Status";
    column.Width = Unit.Percentage(20);
});

我想使用扩展方法来获得以下内容,这使开发人员可以简化基本工作,但仍可以访问高级设置:

settings.AddColumn("StatusId", "Status", column =>
{
    column.Width = Unit.Percentage(20);
});

我可以只返回一个列变量,但这意味着必须为每个列创建一个新的变量名,这就是为什么我想要维护Action方法的原因。

支持这种格式的扩展方法将是什么样的?它需要使用默认设置创建该列,然后将其添加到columns集合中。据我所知:

public static void AddColumn(this GridViewSettings settings, string fieldName, string caption, Action<MVCxGridViewColumn> column)
{
    //...?
}
Grax32

你很亲密 我将action参数设为可选,以便开发人员可以将其省略,除非他们需要它。

public static void AddColumn(this GridViewSettings settings, string fieldName, string caption, Action<MVCxGridViewColumn> additionalConfig = null)
{
    var column = new MVCxGridViewColumn
    {
        FieldName = fieldName,
        Caption = caption
    };

    if (additionalConfig != null)
    {
        additionalConfig(column);
    }

    settings.Columns.Add(column);
}

称呼它

settings.AddColumn("StatusId", "Status", column =>
{
    column.Width = 20;
});

或者

settings.AddColumn("StatusId", "Status");

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章