Невозможно отсортировать данные - PullRequest
2 голосов
/ 28 сентября 2011

Здравствуйте, я не могу отсортировать в алфавитном порядке. Моя таблица данных

Вот как я заполняю свою сетку:

 bs = new BindingSource();
                bs.DataSource = db.GetProducts.ToList();
                dgvInventory.DataSource = bs;

, и вот как я пытаюсь отсортировать свою сетку:

     private void toolStripButton3_Click_1(object sender, EventArgs e)
    {
        bs.Sort = "ID DESC, Name ASC";
        dgvInventory.DataSource = bs;
    }

И когда я нажимаю кнопку, ничего не происходит. Эти два столбца существуют в сетке данных

и это экран:

enter image description here

Ответы [ 2 ]

5 голосов
/ 28 сентября 2011

Цитирование из: http://msdn.microsoft.com/en-us/library/system.windows.forms.bindingsource.sort.aspx

Для поддержки сортировки базовый список должен реализовывать Интерфейсы IBindingList или IBindingListView. Эта возможность может быть запрашивается через свойство SupportsSorting. Многоколоночная сортировка доступно, когда свойство SupportsAdvancedSorting имеет значение true.

Вы вызываете метод расширения ToList(), который вернет вам List<Product>, который не будет поддерживать ни один из этих интерфейсов и, следовательно, не будет сортируемым.

1 голос
/ 28 сентября 2011

Когда у вас есть пользовательские объекты, вы должны реализовать SortableBindingList.Сделайте поиск в интернете для этого.Причина такого поведения заключается в том, что за сортировку отвечает основной источник, а не DataGridView.

Также, тот же вопрос здесь: Сортировка DataGridView не работает

...