Сортировка Combobox с BindingSource.Sort, что здесь не так: - PullRequest
1 голос
/ 22 июля 2011

Не могу получить код ниже, чтобы правильно отсортировать Combobox (drpBox2).

BindingSource bsAddresses = new BindingSource();
bsAddresses.DataSource = searchedAddr;
bsAddresses.Sort = "timesUsed ASC";
drpBox2.DataSource = bsAddresses.DataSource;
drpBox2.DisplayMember = "address";

Как я могу заставить его работать?

Ответы [ 2 ]

1 голос
/ 22 октября 2013

В коде есть простая ошибка: при использовании BindingSource вы должны привязывать свои элементы управления напрямую к BS, а не к ее DataSource.В вашем коде и bsAddresses, и drpBox2 связаны с searchedAddr, поэтому отсортированный BindingSource вообще не используется.Фиксированный код:

BindingSource bsAddresses = new BindingSource();
bsAddresses.DataSource = searchedAddr;
bsAddresses.Sort = "timesUsed ASC";
drpBox2.DataSource = bsAddresses;
drpBox2.DisplayMember = "address";
1 голос
/ 22 июля 2011

Здесь может быть две проблемы

  • Требуемый столбец чувствителен к регистру, поэтому вы должны указывать его в правильном регистре (по умолчанию по возрастанию)
  • Также для базовогоСписок для сортировки должен содержать IBindingList (в противном случае свойство SupportsSorting будет иметь значение false, что означает, что источник не поддерживает сортировку)

Читать здесь

...