2) И использовать это как:

ительно простой вопрос. У меня есть 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;

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

Ответы на вопрос(1)

Ваш ответ на вопрос