如何排序绑定到自定义对象的集合一个DataGridView?(How to sort a DataG

2019-09-18 15:56发布

所以,我一直在关注这个指南数据绑定在Windows窗体控件 (MAD道具笔者,本指南是伟大的),我也用它来创建自定义类和绑定DataGridView这一类的集合:

class CompleteJobListEntry
{
    private string _jobName;
    private Image _jobStatus;
    private DateTime _jobAddedDate;
    private string _jobAddedScanner;
    private string _jobAddedUser;
    private string _jobLastActivity;
    private DateTime _jobActivityDate;
    private string _jobActivityUser;

    public string JobName { get { return _jobName; } set { this._jobName = value; } }
    public Image JobStatus { get { return _jobStatus; } set { this._jobStatus = value; } }
    public DateTime JobAddedDate { get { return _jobAddedDate; } set { this._jobAddedDate = value; } }
    public string JobAddedScanner { get { return _jobAddedScanner; } set { this._jobAddedScanner = value; } }
    public string JobAddedUser { get { return _jobAddedUser; } set { this._jobAddedUser = value; } }
    public string JobLastActivity { get { return _jobLastActivity; } set { this._jobLastActivity = value; } }
    public DateTime JobActivityDate { get { return _jobActivityDate; } set { this._jobActivityDate = value; } }
    public string JobActivityUser { get { return _jobActivityUser; } set { this._jobActivityUser = value; } }
}

在这一点上,我输入了一堆各种SQL数据库中的数据来填充表的,和原来大。 引导甚至提供了用于添加过滤器,这是我打算后跟随一个位一个很好的起点。 现在,虽然,我坚持我的新生成的排序DataGridView 。 环顾四周,我发现,在DataGridView有自己的排序方法,使用这样的:

completeJobListGridView.Sort(completeJobListGridView.Columns["JobName"], ListSortDirection.Ascending);

然而,当我尝试这样做,我得到一个InvalidOperationException ,告诉我“DataGridView控件不能,如果它绑定到不支持排序的IBindingList的排序。” 我发现无论是IBindingList的和IBindingListView接口,而且使我的类继承,这两种接口的没有解决的问题。

我该怎么做呢? 我完全被困在这里...

Answer 1:

如果您的数据集合中,你应该能够使用BindingListView库轻松地分类功能,您DGV补充。 见我如何实施的DataGridView自动分拣? 我的答案如何排序势必EF EntityCollection <T>的WinForms DataGridView的更多信息和代码段。



文章来源: How to sort a DataGridView that is bound to a collection of custom objects?