Итак, я следовал этому руководству по привязке данных в элементах управления Windows Forms (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, но наследование моего класса любого из этих интерфейсов не решает проблемы.
Как мне это сделать? Я здесь совсем застрял ...
BindingList<T>
и реализуетеSupportsSortingCore
. - person Michael   schedule 28.06.2012