一个相对简单的问题。我有一个数据网格视图,它只显示统计信息。没有行的编辑/添加/删除操作。数据网格视图绑定到一个列表。我想要实现的就是让用户能够对列进行排序。
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。唯一的问题是在这方面使用视图似乎是错误的。那么我该怎么办?