私はdatagridview
のWindowsフォームを持っています。すべてのdatagridviewカラムをソート可能にする
理想的な状況:クリックされた列に数字が含まれている場合は、私が上に最低数をしたいと思い、
ユーザーは、9列のいずれかをクリックすると、プログラムは、すべてのデータをソートします。クリックされた列に文字列が含まれている場合は、アルファベット順(A〜Z)にソートされたいと思います。
私が今持っている何:
私は「」ヘッダをクリックしたときにOPがDataGridViewのをソートする方法をスタックオーバーフロー上の古い質問を見ました。私の違いは、DataGridViewを9つの列のいずれかでソート可能にしたいということです。
私は私が見つけた質問から盗まれた、このコードを持っている:
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;
}
彼は9列のいずれかをクリックしたときにのみ、「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
@KevinTinnemansイワンの答えに対するイワン・ストーワのコメントをより慎重に考えてください。私は自分の答えを投稿してから間違っているかもしれませんが、受け入れられた答えはあなたがどんなに良い方法でも開発者になるのを助けません。ブルートフォースは飛び降りるポイントであり、あなたがより良い解決策を思い付くことができない時に、この特定の問題のためにいくつかがあります。これは悪い習慣と管理不能なコードにつながります。 –