私は WPF DataGrid を持っています。列ヘッダーをクリックして並べ替えることができるようにしています。動作しますが、不安定です。安定したソートを行うにはどうすればよいですか?
つまり、このテーブルがある場合:
Class | Student | Grade
-----------------------------
Art | James | A
Art | Amy | B
Art | Charlie | A
Science | James | D
Science | Amy | A
Science | Charlie | C
History | James | B
History | Amy | A
History | Charlie | C
学生で並べ替えると、期待どおりに機能します。
Class | Student | Grade
-----------------------------
Art | Amy | B
Science | Amy | A
History | Amy | A
Art | Charlie | A
Science | Charlie | C
History | Charlie | C
Art | James | A
Science | James | D
History | James | B
しかし、クラスごとに並べ替えると、次のようになります。
Class | Student | Grade
-----------------------------
Art | James | A
Art | Amy | B
Art | Charlie | A
History | James | B
History | Amy | A
History | Charlie | C
Science | James | D
Science | Amy | A
Science | Charlie | C
生徒の並べ替え順序が破壊されています (不安定な並べ替え)。私が欲しいのは、順序を保持する安定した並べ替えです。
Class | Student | Grade
-----------------------------
Art | Amy | B
Art | Charlie | A
Art | James | A
History | Amy | A
History | Charlie | C
History | James | B
Science | Amy | A
Science | Charlie | C
Science | James | D
デフォルトでこのように動作するか、少なくともトグルである必要があるようです。誰か提案はありますか?@Eirikのシフトクリックのアイデアは機能し、動作が存在することを示しています。ただし、私が本当に望んでいるのは、修飾子なしでそのように機能することです。「これ、次にこれ、次にこれ」の原因ではなく、アルゴリズムを別のアルゴリズムに交換する場合です。
これを参照してください: http://en.wikipedia.org/wiki/Sorting_algorithm#Stability