C# 使用动态计算将列添加到DataGridView

C# 使用动态计算将列添加到DataGridView,c#,datagridview,C#,Datagridview,是否可以在DataGridView中添加一列以动态计算值 我有一个DataGridView由LINQ查询(ToList)填充。我使用的是EF6(数据库优先) 我需要添加一个未绑定到查询集合的列,用于计算两个日期之间的天数 这是我的DataGridView填充列表: public class Recl { public int ID { get; set; } public string Concelho { get; set; } publ

是否可以在
DataGridView
中添加一列以动态计算值

我有一个
DataGridView
LINQ
查询(ToList)填充。我使用的是
EF6
(数据库优先)

我需要添加一个未绑定到查询集合的列,用于计算两个日期之间的天数

这是我的
DataGridView
填充列表:

public class Recl
    {
        public int ID { get; set; }
        public string Concelho { get; set; }
        public string Entidade { get; set; }
        public string LC { get; set; }
        public string Classificacao { get; set; }
        public string TipoR { get; set; }
        public string TipoE { get; set; }
        public string Identificador { get; set; }
        public string Estado { get; set; }
        public decimal? Custos { get; set; }
        public string Descricao { get; set; }
        public DateTime DataR { get; set; }
        public DateTime DataE { get; set; }
        public DateTime? DataRespostaEE { get; set; }
        public DateTime? DataRespostaC { get; set; }
    }

    public IEnumerable<Recl> LoadData()
    {
        var ctx = new IWMJEntities();
        var fillrecl = (from p in ctx.tblRecl.AsQueryable()
                         join c in ctx.tblConc on p.ConcID equals c.ConcID
                         join e in ctx.tblEnt on p.EntID equals e.EntID
                         join ex in ctx.tblLC on p.LCID equals ex.LCID
                         join cl in ctx.tblClassificacao on p.ClassificacaoID equals cl.ClassificacaoID
                        join tp in ctx.tblTipoR on p.TipoRID equals tp.TipoRID
                        join te in ctx.tblTipoE on p.TipoEID equals te.TipoEID
                        select new Recl
                        {
                             ID = p.ReclID,
                             Concelho = c.NomeConcelho,
                             Entidade = e.Nome,
                             LC = ex.Codigo,
                             Classificacao = cl.Classificacao,
                             TipoR = tp.TipoR,
                             TipoE = te.TipoE,
                             Identificador = p.Identificador,
                             Estado = p.Estado,
                             Custos = p.Custos,
                             DataR = p.DataR,
                             DataE = p.DataE,
                             DataRespostaEE = p.DataRespostaEmpresa,
                             DataRespostaCliente = p.DataRespostaCliente
                         }).ToList();
        return fillrecl;
    }
如何再添加一列(天),计算
DateTime.Now
DataE
之间的差异(以天为单位)


我把这个新的列放在代码的什么地方?

Recl
类添加一个属性(比如
DifferenceInDays
),然后在
select
子句中添加
DifferenceInDays=(DateTime.Now-p.DataE)。Days
只需向类添加一个属性:

public class Recl
{
    ...    
    public DateTime DataE { get; set; }

    public TimeSpan DaysDifference { get { return DateTime.Now - DataE; } }
}

谢谢,但是一个简单的日期减法会导致DbarithmetricExpression参数的错误。所以我在Recl类“Days”中添加了一个属性,并在select查询中使用了(int)DbFunctions.DiffDays(p.DataE,DateTime.Now)。这很有效。谢谢
public class Recl
{
    ...    
    public DateTime DataE { get; set; }

    public TimeSpan DaysDifference { get { return DateTime.Now - DataE; } }
}