C# 根据工作日对RadJumplist中的项目进行分组

C# 根据工作日对RadJumplist中的项目进行分组,c#,xaml,windows-phone-8,telerik,C#,Xaml,Windows Phone 8,Telerik,我想根据工作日对一些项目进行分组和排序。本周从周一开始,因此组标题中的第一项应该是周一,然后是周二,依此类推 BusData.Weekday是一个字符串,其值为Weekday=“Monday” 下面的代码根据工作日对项目进行分组,但按字母顺序进行排序,因此星期五是组标题中的第一个项目 GenericGroupDescriptor<BusData, string> group = new GenericGroupDescriptor<BusData, string>();

我想根据工作日对一些项目进行分组和排序。本周从周一开始,因此组标题中的第一项应该是周一,然后是周二,依此类推

BusData.Weekday是一个字符串,其值为Weekday=“Monday”

下面的代码根据工作日对项目进行分组,但按字母顺序进行排序,因此星期五是组标题中的第一个项目

GenericGroupDescriptor<BusData, string> group = new GenericGroupDescriptor<BusData, string>();
        group.SortMode = ListSortMode.Ascending;
        group.KeySelector = (key) =>
        {
            return key.WeekDay;
        };
GroupDescriptors.Add(group);
GenericGroupDescriptor组=新的GenericGroupDescriptor();
group.SortMode=ListSortMode.Ascending;
group.KeySelector=(键)=>
{
返回key.WeekDay;
};
组描述符。添加(组);
我应该改变什么以获得期望的结果

我还可以绑定组标题中的其他项目,如下面代码的第二个文本框中的文本吗

<telerikDataControls:RadJumpList.GroupHeaderTemplate>
                <DataTemplate>
                    <StackPanel Orientation="Horizontal" Margin="12,0,12,0">
                        <TextBlock Text="{Binding}" Margin="12,0,12,0" FontSize="30" FontFamily="{StaticResource PhoneFontFamilyNormal}" />
                        <TextBlock Margin="20,0,0,0" Text="{Binding Time}" />
                    </StackPanel>
                </DataTemplate>
</telerikDataControls:RadJumpList.GroupHeaderTemplate>

RadJumpList也支持

只需在BusData类中添加一个SortWeight

class BusData
{
    public int SortWeight
    {
        get
        {
            switch(this.WeekDay)
            {
                 case "Monday": return 0;                        
                 case "Tuesday": return 1;
                 // ... add more days here
            }
            return 7;
        }
    }
}
然后创建并添加排序描述符

var sorter = new GenericSortDescriptor<BusData, int>(
    b => b.SortWeight) { SortMode = ListSortMode.Ascending };
SortDescriptors.Add(sorter);
var-sorter=新的GenericSortDescriptor(
b=>b.SortWeight){SortMode=ListSortMode.Ascending};
SortDescriptors.Add(分拣机);
与其绑定到属性,我更喜欢在xaml中进行绑定

<telerikDataControls:RadJumpList.GroupDescriptors>
    <data:PropertyGroupDescriptor PropertyName="WeekDay" SortMode="None" />
</telerikDataControls:RadJumpList.GroupDescriptors>

<telerikDataControls:RadJumpList.SortDescriptors>
    <data:PropertyGroupDescriptor PropertyName="SortWeight" SortMode="Ascending" />
</telerikDataControls:RadJumpList.SortDescriptors>

真正重要的要记住的是将组描述符的
SortMode
设置为
None
,因为如果不设置它,它将被设置为升序,这将覆盖排序描述符的行为