Una domanda relativamente semplice. Ho un datagridview, che tutto ciò che fa è visualizzare le statistiche. Non c'è modifica/aggiunta/eliminazione di righe. La vista datagrid è associata a un elenco. Tutto quello che voglio ottenere è avere l'utente in grado di ordinare le colonne.Ordinamento dell'origine dati Datagridview nell'elenco <T> dove T è anonimo
Come previsto, le colonne non sono ordinabili, ma le informazioni visualizzate sono quelle desiderate. La mia domanda è come rendere l'ordinamento DataGridView basato sul tipo di colonna con la quantità meno complicata e minima di codice, in quanto il codice verrà utilizzato più volte in tutto.
Questa applicazione utilizzava un DataBase con viste. Queste viste popolavano quindi DataGridViews. Le viste sono ancora intorno, quindi una possibile soluzione potrebbe essere:
DataBase.ViewMarketValue temp = new DataBase.ViewMarketValue()
_markets.ForEach(market => temp.AddViewMarketValueRow(_cities[market.Location].Name, market.Value);
dataGridView1.DataSource = temp;
Ciò comporta la desiderata: un datagridview che ha tutte le informazioni ed è sortable. L'unico problema è che sembra sbagliato usare le viste in questo aspetto. Quindi cosa dovrei fare?
soluzione molto buona! La mia unica lamentela (ed è piccola) è che l'ordinamento non è veloce come l'ideale, ma è tollerabile e la cosa migliore finora. –
È lento perché utilizza la riflessione per ottenere il valore della proprietà. È possibile modificare facilmente la classe PropertyComparer in modo che generi un delegato al momento della creazione e utilizzi questo delegato anziché property.GetValue –
@ThomasLevesque sarebbe fantastico se fosse possibile inserire alcuni snippet di codice per implementare il suggerimento. Grazie – Esen