Добавление объектов в SortedBindingList - PullRequest
0 голосов
/ 27 января 2009

У меня есть WinForm, содержащая DataGridView со списком членов в группе. Форма содержит функциональность (bindingNavigator) для добавления новых членов и изменения роли текущих членов. Я хочу иметь возможность отсортировать участников и реализовать это, введя SortedBindingList в микс. Однако, к сожалению, это лишает меня возможности добавлять нового члена в команду. Я получаю следующее исключение:

Произошло исключение System.InvalidOperationException

Message = "Элемент нельзя добавить в список только для чтения или список фиксированного размера."

Я понимаю ошибку, но есть ли способ обойти это или я должен найти какой-то другой способ сортировки списка?

1 Ответ

4 голосов
/ 12 февраля 2009

Мне очень повезло, используя Просмотр списка привязок . Просто сохраните ваши объекты в общих списках и установите DataSource следующим образом:

public void BindGenericList<T>(List<T> list)
{
    DataSource = new BindingListView<T>(list);
}

Получить реальный объект из списка так же просто, как:

public void GetObjectFromRow<T>(int rowIndex)
{
    BindingListView<T> bindingListView = DataSource as BindingListView<T>;

    return (null != bindingListView) ? bindingListView[rowIndex].Object : default(T);
}

Сортировка с BLV фактически быстрее, чем с использованием DataView .

...