【发布时间】:2017-11-27 20:16:18
【问题描述】:
我有一个用于为ItemsControl 生成项目的视图模型:
public class PermissionItemViewModel
{
public PermissionsEnum Permission {get; set;}
}
枚举本身的定义方式是列表不是自然按字母顺序排列的,当控件呈现时,项目与枚举定义的顺序相同。
在我看来,我正在尝试定义一个CollectionViewSource,并使其按照本质上是myEnumValue.ToString() 对这些项目进行排序。相反,排序似乎是按枚举值的顺序排列的,而不是(我认为的)隐含的 ToString() 结果。
<CollectionViewSource x:Key="permissionsViewSource"
Source="{Binding PermissionItems}"> <!-- ObservableCollection<PermissionItemViewModel> -->
<CollectionViewSource.SortDescriptions>
<cm:SortDescription PropertyName="Permission" />
</CollectionViewSource.SortDescriptions>
</CollectionViewSource>
最终,我使用这样的来源:
<ItemsControl ItemsSource="{Binding Source={StaticResource permissionsViewSource}}" />
我希望它按枚举的名称而不是它们的值进行排序。我怎样才能强迫它这样做?
【问题讨论】:
标签: c# wpf sorting collectionviewsource