Сортировка источника данных Datagridview в List , где T анонимный

Относительно простой вопрос. У меня есть datagridview, который все, что он делает, отображает статистику. Нет редактирования / добавления / удаления строк. Datagridview привязан к списку. Все, что я хочу добиться, это дать пользователю возможность сортировать столбцы.

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();

Как и ожидалось, столбцы нельзя сортировать, но отображается именно то, что нужно. У меня вопрос, как сделать сортировку DataGridView на основе типа столбца с наименее сложным и наименьшим количеством кода, поскольку код будет использоваться несколько раз на всем протяжении.

Это приложение использовало базу данных с представлениями. Эти представления затем заполнили DataGridViews. Представления все еще существуют, поэтому возможное решение может быть следующим:

DataBase.ViewMarketValue temp = new DataBase.ViewMarketValue()

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

Это приводит к желаемому: представление datagridview, которое содержит всю информацию и его можно сортировать. Единственная проблема заключается в том, что использование представлений в этом аспекте кажется неправильным. Итак, что мне делать?

7
задан Nick Babcock 15 January 2011 в 20:40
поделиться