5

そのため、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次のように使用できる独自の Sort メソッドがあることが わかりました。

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

ただし、これを実行しようとすると、InvalidOperationException「並べ替えをサポートしていない IBindingList にバインドされている場合、DataGridView コントロールを並べ替えることができません」というメッセージが表示されます。IBindingList と IBindingListView の両方のインターフェイスを見つけましたが、クラスにこれらのインターフェイスのいずれかを継承させても問題は解決しません。

どうすればいいですか?私はここで完全に立ち往生しています...

4

1 に答える 1