Por que não vai a minha coluna de classificação em um winforms .NET datagrid?
-
16-09-2019 - |
Pergunta
Eu tenho um WinForms NET datagrid cuja fonte de dados é um List<cLineItem>
chamadas linhas. cLineItem é muito simples classe com imóveis como unidades (int), descrição (string) e montante unitário (float).
No código, eu preencher a lista de linhas e, em seguida, definir a fonte de dados:
dataGridView1.DataSource = lines;
Isso preenche corretamente o grid, no entanto, apesar de cada uma das colunas na grade são definidas para Sortable, quando você clica em um cabeçalho de coluna, ele doesnt classificar as linhas.
Solução
ordem DataGridView não trabalho por padrão, a menos que sua fonte explicitamente suporta a classificação. Você precisa envolver sua fonte de dados em um SortableBindingList . Você pode usar os PropertyComparer.cs arquivos e SortableBindingList.cs deste arquivo zip e usá-lo como este:
dataGridView1.DataSource = new SortableBindingList<cLineItem>(lines);