Невозможно отсортировать данные

Здравствуйте, я не могу отсортировать в алфавитном порядке мой datagridview

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

 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;
    }

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

и это экран:

2 ответа

Решение

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

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

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

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

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

Другие вопросы по тегам