在绑定到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