我的DataGrid
中有一列显示了一些枚举值。我将SortMemberPath
设置为我的属性,该属性由这些枚举值表示。但是,当单击列标题时,它不会对我的枚举进行排序,因为我没有指定如何对此类型进行排序。这是一个枚举,所以我无法完全覆盖<运营商。有什么想法吗?
更新: 如果可以的话,我正试图避开第二处房产。我只能设置SortMemberPath =“MyEnumProperty”。我无法告诉它如何解释这个价值。
_colDefs["Subtype"] = new DataGridTextColumn()
{
Binding = new Binding("") { Converter = new SubtypeConverter() },
SortMemberPath = "Subtype"
};
我的财产看起来像这样:
public SubtypeEnum Subtype { get; set; }
答案 0 :(得分:1)
你可以通过强硬转换将枚举转换为int:
(int)MyEnum.EnumValue
如果你可以为你的数据结构添加一个假的属性,只是简单地将它的枚举值重命名为int,你应该能够通过该属性对它进行排序,即使它不可见。
答案 1 :(得分:1)
尝试在绑定中指定属性名称:
_colDefs["Subtype"] = new DataGridTextColumn()
{
Binding = new Binding("Subtype"),
SortMemberPath = "Subtype"
};
你甚至不再需要转换器(如果它只是转换为字符串)。