Относительно простой вопрос. У меня есть 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, которое содержит всю информацию и его можно сортировать. Единственная проблема заключается в том, что использование представлений в этом аспекте кажется неправильным. Итак, что мне делать?