强制ListCollectionView中的组成为第一个

时间:2012-07-26 13:21:39

标签: c# wpf

我使用ListCollectionView作为选项卡控件的datacontext。我已经根据枚举添加了一个GroupDescription,我希望一个特定的组显示为选项卡控件中的第一个选项卡,但现在它总是放在底部。

Profiles = new ListCollectionView(_profiles);
        Profiles.GroupDescriptions.Add(new PropertyGroupDescription("ProfileType"));
        Profiles.SortDescriptions.Add(new SortDescription("ProfileName", ListSortDirection.Ascending));

_profiles是我的个人资料ViewModels的ObservableCollection。

My Enum看起来像:

public enum ProfileTypeEnum
    {
        CurrentSettings,
        CustomSettings,
        DefaultSettings
    }

那么如何强制CurrentSettings组永远是第一个?

1 个答案:

答案 0 :(得分:3)

尝试使用辅助属性:

public class Item
{
    public ProfileTypeEnum ProfileType { get; set; }
    public string ProfileName { get; set; }
    public int ProfileTypeValue { get { return (int)ProfileType; } }
}

给枚举值:

public enum ProfileTypeEnum
{
    CurrentSettings=0,
    CustomSettings=1,
    DefaultSettings=2
}

并添加排序说明:

Profiles.SortDescriptions.Add(new SortDescription("ProfileTypeValue", ListSortDirection.Ascending));
Profiles.SortDescriptions.Add(new SortDescription("ProfileName", ListSortDirection.Ascending));

通过这种方式,您可以使用枚举值来改变顺序并强制一个在顶部。