2012-07-26 84 views
3

我正在使用ListCollectionView作为datacontext到选项卡控件。我已经为它添加了一个GroupDescription,它基于一个枚举,并且我希望特定的组作为tab控件中的第一个选项卡出现,但现在它始终放在底部。强制ListCollectionView中的组成为第一个

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

_profiles是我的配置文件ViewModels的ObservableCollection。

我的枚举的样子:

public enum ProfileTypeEnum 
    { 
     CurrentSettings, 
     CustomSettings, 
     DefaultSettings 
    } 

所以,我怎么能强迫CurrentSettings组永远是第一位?

+0

你试过改变升序降序吗? – stukselbax 2012-07-26 13:37:33

+0

是的,我刚刚尝试过,它只会改变他们在他们的组中排序的方式。就像我目前的设置组只是按降序排序,但这些组保持在相同的位置。 – twreid 2012-07-26 13:40:33

回答

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)); 

这种方式,您可以用枚举的值来改变顺序并强制顶层。

+0

你我的朋友是一个完美的天才。非常感谢你。 – twreid 2012-07-26 13:53:39

+0

很高兴知道它适合你:o) – NestorArturo 2012-07-26 14:11:24

+0

真正有用的解决方案。我需要这个。 – rajibdotnet 2016-02-25 15:34:27

相关问题