gpt4 book ai didi

c# - 如何对绑定(bind)到自定义对象集合的 DataGridView 进行排序?

转载 作者:行者123 更新时间:2023-11-30 17:59:23 25 4
gpt4 key购买 nike

所以我一直在关注this guide for data binding on Windows Forms controls (作者的 MAD Prop ,这个指南很棒),我用它来创建一个自定义类并将 DataGridView 绑定(bind)到这个类的集合:

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 有自己的 Sort 方法,可以像这样使用:

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

但是,当我尝试执行此操作时,我得到一个 InvalidOperationException,告诉我“如果 DataGridView 控件绑定(bind)到不支持排序的 IBindingList,则无法对其进行排序。”我找到了 IBindingList 和 IBindingListView 接口(interface),但是让我的类继承这两个接口(interface)中的任何一个都不能解决问题。

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

最佳答案

如果您的数据在集合中,您应该能够使用 BindingListView library轻松为您的 DGV 添加分拣功能。参见 How do I implement automatic sorting of DataGridView?以及我对 How to Sort WinForms DataGridView bound to EF EntityCollection<T> 的回答获取更多信息和代码片段。

关于c# - 如何对绑定(bind)到自定义对象集合的 DataGridView 进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11236109/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com