当对绑定到Enum的GridView中的列进行排序时,它按Enum的顺序排序。我需要它按Enum的字符串表示排序。以下是我看过的选项,其中我不喜欢它们。
到目前为止,2号将是我最喜欢的,但就像我说的,我不喜欢它。
以防万一的更多信息 - 我正在绑定一个IW的列表到网格,2列是需要按字符串排序的枚举。网格中还有guid-type,string和decimal列需要排序。
答案 0 :(得分:2)
尝试使用ViewModels。基本上,您创建包含模型对象的ViewModel对象(您的IWhatever)。此ViewModel随后公开了View中使用的新属性和方法。在您的情况下,您将使用您的Enum的字符串表示形式公开一个属性。优点是,您可以执行任何您想要的转换逻辑。
请参阅MVVM模式。 http://en.wikipedia.org/wiki/Model_View_ViewModel
编辑:小例子:
public class WhateverViewModel
{
public WhateverViewModel(IWhatever model)
{
this.model = model;
}
...
public string MyEnumView
{
get
{
return model.MyEnum.ToString();
}
}
public string MyEnumView2
{
get
{
switch(model.MyEnum)
{
case MyEnumType.A: return "Hello";
case MyEnumType.B: return "World";
}
}
}
}