У меня есть форма Windows с datagridview
.
Идеальная ситуация:
Пользователь нажимает на любой из девяти столбцов, и программа сортирует все данные, если столбец с щелчком содержит числа, мне нужно, чтобы наименьшее число было сверху. Если столбец с кликом содержит строку, которую я хотел бы сортировать по алфавиту (A-Z).
То, что у меня есть прямо сейчас:
Я видел старый вопрос о переполнении стека, где OP, как сортировать datagridview при нажатии заголовка "a". Разница с моей заключается в том, что я хочу, чтобы мое datagridview было отсортировано по любому из девяти столбцов.
У меня есть этот код, украденный из вопроса, который я нашел:
dataGridView2.DataSource = listPlayers.Select(s => new { voornaam = s.Voornaam,
Achternaam = s.Achternaam,
positie = s.Positie,
Nationaltieit = s.Nationaliteit,
Leeftijd = s.Age,
Aanval = s.Aanval,
Verdediging = s.Verdediging,
Gemiddeld = s.Gemiddeld,
waarde = s.TransferWaarde })
.OrderBy(s => s.Achternaam)
.ToList();
foreach(DataGridViewColumn column in dataGridView2.Columns)
{
dataGridView2.Columns[column.Name].SortMode =
DataGridViewColumnSortMode.Automatic;
}
Это позволяет только пользователю заказать "Achternaam", когда он нажимает на один из девяти столбцов. Я хочу, когда пользователь нажимает на столбец Nationaliteit, данные сортируются с помощью An сверху. И так далее для каждого столбца
Это список listplayers:
namespace SimulatorSimulator
{
class SpelerData
{
public string Voornaam { get; set; }
public string Achternaam { get; set; }
public string Positie { get; set; }
public string Nationaliteit { get; set; }
public int Age { get; set; }
public int Aanval { get; set; }
public int Verdediging { get; set; }
public int Gemiddeld { get; set; }
public string TransferWaarde { get; set; }
}
}
И в основном классе:
List<SpelerData> listPlayers = new List<SpelerData>();
Некоторые фиктивные данные:
Romelu;Lukaku;Aanvaller;Belgie;22;87;12;50;41.000.000,00
Raheem ;Sterling;Aanvaller;Engeland;21;84;30;57;35.000.000,00
Zlatan ;Ibrahimovic;Aanvaller;Zweden;34;87;21;54;34.500.000,00