我有一個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
您是否正在尋找一種方法在後面的代碼中執行此操作,或者希望有人能夠知道將shift-click-behavior設置爲默認行爲的方法? – Grubsnik 2012-09-10 11:54:58
@Grubsnik我希望有人會知道如何改變排序算法,因爲我認爲shift-click方法是一個重大的黑客攻擊。但是,它完成了這項工作。 – TarkaDaal 2012-09-12 08:46:19