dotNet C#DataGridView数据绑定性能
我有一个DatagridView,其中BindingSource包含来自LiteDB源的约5000个数据项。这些数据项包含一个小预览图片 我的问题是:我能否以某种方式提高数据绑定的性能?还是我用错了 这是我的数据对象dotNet C#DataGridView数据绑定性能,c#,data-binding,datagridview,litedb,C#,Data Binding,Datagridview,Litedb,我有一个DatagridView,其中BindingSource包含来自LiteDB源的约5000个数据项。这些数据项包含一个小预览图片 我的问题是:我能否以某种方式提高数据绑定的性能?还是我用错了 这是我的数据对象 public class VEFile { public VEFile() { Tags = new List<VETag>(); } public static DateTime LastPlaybacked { get
public class VEFile
{
public VEFile()
{
Tags = new List<VETag>();
}
public static DateTime LastPlaybacked { get; set; }
public string Path { get; set; }
public string FileName { get; set; }
public string LastAccessed { get; set; }
public byte[] Thumbnail { get; set; }
public List<VETag> Tags { get; set; }
[System.ComponentModel.Browsable(false)]
public string Id { get; set; }
public DateTime LastModified { get; set; }
public long FileSize { get; set; }
[BsonIndex]
public int ViewCount { get; set; }
}
挂起几秒钟,加上RAM使用率上升~2GB,然后立即下降。您需要使用分页。数据源对象将通过设置TotalNumberOfItems、CurrentPageIndex和PageSize属性来支持这一点 然后将查询调整为仅选择PageSize行数。使用LINQ的Take和Skip方法
using (var db = new MyLiteDatabase(connectionString))
{
var filesCollection = db.GetCollection<VEFile>("files");
var results = filesCollection.Include(x => x.Tags).FindAll().OrderByDescending(x => x.LastModified);
originalBindingList = new BindingList<VEFile>(new List<VEFile>(results));
bindingSource1.DataSource = originalBindingList.OrderByDescending(x => x.LastModified);
}
bindingSource1.DataSource = originalBindingList.OrderByDescending(x => x.LastModified);