Добавить столбец в DataGridView с динамическими вычислениями - PullRequest
0 голосов
/ 07 июня 2018

Есть ли возможность добавить столбец в 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;
    }

И вызов для загрузки DataGridView из события загрузки:

datagrid.DataSource = LoadData();

Как добавить еще один столбец (Дни), который рассчитывает разницу в днях между DateTime.Nowи DataE?

Куда поместить этот новый столбец в коде?

Ответы [ 2 ]

0 голосов
/ 07 июня 2018

Просто добавьте недвижимость в свой класс:

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

    public TimeSpan DaysDifference { get { return DateTime.Now - DataE; } }
}
0 голосов
/ 07 июня 2018

Добавьте свойство (скажем, DifferenceInDays) к классу Recl и в своем предложении select добавьте DifferenceInDays = (DateTime.Now - p.DataE).Days

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...