Tri Datagridview source de données sur Liste<T> où T est anonyme

Une question relativement simple. J'ai un datagridview, qui tous, il n'est affiche des statistiques. Il n'y a pas de modification/ajout/suppression de lignes. Le datagridview est lié à une Liste. Tout ce que je veux atteindre est pour les utilisateurs d'être en mesure de trier les colonnes.

class Market
{
    public int Location {get;set;}
    public float Value {get;set;}
    //...
}
class City
{
    public String Name {get;set;}
    //...
}

List<Market> _markets;
List<City> _cities;
//Lists are populated.

dataGridView1.DataSource = _markets.Select(market => 
    new { _cities[market.Location].Name, market.Value}).ToList();

Comme prévu, les colonnes ne sont pas sortable, mais l'information qui s'affiche est ce qui est voulu. Ma question est comment faire le DataGridView de tri basé sur le type de colonne avec le moins compliqué et moins de code, le code sera utilisé à plusieurs reprises tout au long de.

Cette application servant à utiliser une Base de données qui avait vues. Ces points de vue alors rempli le DataGridViews. Les vues sont toujours là, donc, une solution possible pourrait être:

DataBase.ViewMarketValue temp = new DataBase.ViewMarketValue()

_markets.ForEach(market => temp.AddViewMarketValueRow(_cities[market.Location].Name, market.Value);
dataGridView1.DataSource = temp;

Cette résultats dans la souhaitées: un datagridview qui a toutes les informations et c'est triable. Le seul problème est qu'il semble mal d'utiliser des points de vue sur cet aspect. Alors que dois-je faire?

OriginalL'auteur Nick Babcock | 2011-01-15