1

我的列中有一个DataGrid显示一些枚举值的列。我将 设置SortMemberPath为由这些枚举值表示的属性。但是,当单击列标题时,它不会对我的枚举进行排序,因为我没有指定如何对这种类型进行排序。这是一个枚举,所以我不能完全覆盖 < 运算符。有任何想法吗?

更新:如果可以的话,我会尽量避免使用第二个属性。我只能设置 SortMemberPath = "MyEnumProperty"。我无法告诉它如何解释该值。

_colDefs["Subtype"] = new DataGridTextColumn()
{       
    Binding = new Binding("") { Converter = new SubtypeConverter() },
    SortMemberPath = "Subtype"
};

我的财产如下所示:

public SubtypeEnum Subtype { get; set; }
4

2 回答 2

1

您可以通过硬转换将枚举转换为 int:

(int)MyEnum.EnumValue

如果你可以在你的数据结构中添加一个伪造的属性,它只是将它的枚举值重新转换为 int,你应该能够按该属性对其进行排序,即使它不可见。

于 2013-04-01T23:57:17.193 回答
1

尝试在绑定中指定属性名称:

_colDefs["Subtype"] = new DataGridTextColumn()
{       
    Binding = new Binding("Subtype"),
    SortMemberPath = "Subtype"
};

您甚至不再需要转换器(如果它只是转换为字符串)。

于 2013-04-03T14:35:07.790 回答