目前,我正计划向datagridview中添加约500K列表。
类具有多个字段,每个列表具有13个字段。 但我现在只绑定7个字段。
问题是,似乎添加时间太长。像5秒5K一样可怕。
有什么方法可以优化这一点? 还是应该扔掉datagridview并考虑其他一些视图?
private void UpdateDataGrid()
{
this.dataGridView1.Rows.Clear();
for (int i = 0; i < gVar.gTagCount; i++)
{
this.dataGridView1.Rows.Add(new object[]
{
gVar.Tags[i].TagCount,
gVar.Tags[i].Name,
gVar.Tags[i].Score.Story,
gVar.Tags[i].Score.Drawing,
gVar.Tags[i].Score.Drawing,
gVar.Tags[i].Score.Memetic,
gVar.Tags[i].DupeCount
});
}
}
答案 0 :(得分:2)
请考虑使用分页,以便您不会一次加载所有数据。下面链接到的问题的答案提供了一个示例。
答案 1 :(得分:2)
根据我们讨论的方法,将是这样:
首先创建一个新类,我将其命名为TagsMin。该类应包含您想要在datagridview中使用的7个内容。
第二,我将填充一个该类的列表(您需要使用所需的内容来完成它):
var tagList = gVar.Tags.Select(x => new TagsMin() { TagCount = x.TagCount, Name = x.Name... }).ToList()
最后一步是将其绑定到datagridview:
dataGridView1.DataSource = tagList;
答案 2 :(得分:0)
您是否可以尝试避免循环并以标准方式直接绑定列表:
dataGridView1.DataSource = null;
dataGridView1.DataSource = gVar.Tags;