所以,我一直在關注this guide for data binding on Windows Forms controls(MAD道具筆者,本指南是偉大的),我也用它來創建一個自定義類和綁定DataGridView
這一類的集合:如何對綁定到自定義對象集合的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接口,但是讓我的類繼承這些接口中的任何一個都不能解決問題。
我該怎麼做?我完全卡在這裏...
另一種解決方案是在這裏記錄:http://stackoverflow.com/a/28520948/3317709。 –