在綁定到Enum的GridView中對列進行排序時,按照Enum的順序排序。我需要它通過Enum的字符串表示進行排序。以下是我見過的選項,其中我都不喜歡。GridView - 按字母順序對枚舉進行排序
- 重新排列枚舉按字母順序排列 - 糟糕的,因爲現在的表現是依靠業務和數據訪問層「之類的預」的數據。
- 使用myEnum.ToString()創建一個新對象(datatable,new list,whatever)並將其綁定到GridView - 這個不錯,但我寧願不要。
- 在我的搜索,檢查列排序是否是一個枚舉,然後按字段的字符串表示排序 - 我必須說,爲什麼這是不好的?
2號會是我最喜歡的,但就像我說的,我不喜歡它。
更多信息,以防萬一 - 我綁定一個列表的任何網格,2列是需要按字符串排序的枚舉。網格中還有需要排序的guid類型,字符串和小數點列。
這些值並不重要,但就像我在我的問題中所說的那樣,這是一個關注點分離的問題。 Enum駐留在業務層,業務層不關心如何排序,只有表示層關心。 – Martin 2009-09-28 17:52:08
至於你使用#3的建議,它會刪除動態排序的所有方面,而我基本上還是手動排序(如果此列以這種方式排序,如果此列排序...),那絕對不是我想要的。我其實也是和#2一起去的......但是這是合理的,因爲我也需要它來滿足其他原因。 – Martin 2009-09-28 17:54:15
我同意你關於分離問題的觀點,我只是在調查儘可能多的選項,因爲我可以想到給你帶來神奇的SortExpression。我不認爲#3會刪除動態排序,而不是依靠GridView排序例程的預先存在的機制,而是實現自己的排序例程。然而,這種排序對於GridView仍然是動態的,因爲它仍然只是傳播哪些公共屬性,它會喜歡它的數據排序。 – 2009-09-28 18:20:50