我有一个Silverlight Toolkit数据网格,其中一列显示数值的文本表示。我想对列的基础数值进行排序,但是将文本数据呈现给用户。网格列中的值采用以下格式:
由于这些值是文本的,网格正在文本上正确排序,但是我有一个自定义Comparer,它已经可以按数字类别对它们进行排序,并希望将其插入网格中。
网格单元绑定的数据对象仅具有文本表示(并且无法轻松添加数值)。因此,在这种情况下,SortMemberPath =将不起作用。
是否可以为单个网格列注入自定义比较器并对其进行排序?或者使用自定义比较器实现CollectionViewSource?请记住,这是Silverlight,而不是WPF,因此与WPF相比,某些字段/属性/类缺失。
答案 0 :(得分:1)
我觉得实现这一点的最简单方法是向绑定到网格的实体添加两个属性,一个是文本,另一个可以是数字,只绑定一个网格列,另一个可以在SortMemberPath中使用。如果不是要在实体中保留两个属性,则可以仅保留Numeric并使用转换器将其转换为text和SortMemberPath = NumericPropertyName。