我有一个List<CallLog>
,其中CallLog
具有以下属性:
public string SomeProperty1 { get; set; }
public string SomeProperty2 { get; set; }
public string SomePropertyN { get; set; }
public DateTime Date { get; set; }
public DateTime CallEndTime { get; set; }
我需要使用此列表填充(devexpress)网格数据源。网格包含以下列:
日期| SomeProperty1 | SomeProperty2 | ...... | SomePropertyN | CallStartTime | CallEndTime
实际上,我在2列中使用Date
属性,在第一列(Date)中,我只使用date
部分,而在另一列(CallStartTime)中,我使用仅time
部分。
不幸的是,当我只是要求它在2列中显示我gridxview
属性的不同格式时,Date
无法执行正确的分组。因此,我决定创建一个自定义类并将原始列表复制到一个新列表(List<CustomizedCallLog>
)并将新列表作为网格数据源传递。以下是我这样做的方式。但这需要太长时间。有没有快速的方法来复制列表?
我的自定义通话记录类:
Public Class CustomizedCalLog
{
public DateTime Date { get; set; }
public string SomeProperty1 { get; set; }
public string SomeProperty2 { get; set; }
public string SomePropertyN { get; set; }
public string CallStartTime { get; set; }
public string CallEndTime { get; set; }
public CustomizedCallLog(CallLog log)
{
this.Date = log.Date;
this.SomeProperty1 = log.SomeProperty1 ;
this.SomeProperty2 = log.SomeProperty2 ;
this.SomePropertyN = log.SomePropertyN ;
this.CallStartTime = log.Date.ToString("H:mm");
this.CallEndTime = log.CallEndTime.ToString("H:mm");
}
}
设置网格:
private void SetGrid()
{
var logs = someBusiness.GetLogs();
List<CustomizedCallLog> dataSource = new List<CustomizedCallLog>();
foreach (var log in logs)
{
dataSource.Add(new CustomizedCallLog(log));
}
grid.ForceDataRowType(typeof(CustomizedCallLog));
grid.DataSource = dataSource;
grid.DataBind();
}
答案 0 :(得分:0)
使用@Yuval Itzchakov的评论解决了我的问题。
我无法将新属性添加到现有类中,因为现有类是自动生成的(带有一些.tt文件)。
所以,我按原样保留了代码,并改进了导致瓶颈的this.SomePropertyX = log.SomePropertyX
代码。