Winrt C#-按字母顺序对Gridview和组进行排序

Winrt C#-按字母顺序对Gridview和组进行排序,c#,gridview,listbox,group-by,windows-runtime,C#,Gridview,Listbox,Group By,Windows Runtime,我今天来找你是因为我不知道如何解决这个问题。我想按字母顺序排列Gridview,这很简单。但我想在每组第一个字母之前加上一个字母的vignet。类似于Windows8的“联系人”应用程序的组件 像这样: - A : aaaa aaaann aananana - B : bbbaaaa bbbabbbb bbbaccc -C : cccc... 这是gridview的代码。我将一个数据绑定到这个gridview,我想在每组字母之间添加另一个带有该组字母的vignet <Grid

我今天来找你是因为我不知道如何解决这个问题。我想按字母顺序排列Gridview,这很简单。但我想在每组第一个字母之前加上一个字母的vignet。类似于Windows8的“联系人”应用程序的组件

像这样:

 - A :
 aaaa
 aaaann
 aananana
- B :
bbbaaaa
bbbabbbb
bbbaccc
 -C : 
cccc...
这是gridview的代码。我将一个数据绑定到这个gridview,我想在每组字母之间添加另一个带有该组字母的vignet

<Grid>
                    <DataTemplate>
                        <GridView ItemsSource="{Binding Path=Data}" 
                                  IsItemClickEnabled="True" SelectionMode="None">
                            <GridView.ItemsPanel>
                                <ItemsPanelTemplate>
                                    <VariableSizedWrapGrid Orientation="Vertical" ItemWidth="280" />
                                </ItemsPanelTemplate>
                            </GridView.ItemsPanel>
                        </GridView>
                    </DataTemplate>
        </Grid>

如果你有主意的话?谢谢你抽出时间


问候。

宾果,你会找到答案的

示例应用程序中的
SampleDataSource
具有以下方法:

    internal List<GroupInfoList<object>> GetGroupsByLetter() 
    { 
        List<GroupInfoList<object>> groups = new List<GroupInfoList<object>>(); 

        var query = from item in Collection 
                    orderby ((Item)item).Title 
                    group item by ((Item)item).Title[0] into g 
                    select new { GroupName = g.Key, Items = g }; 
        foreach (var g in query) 
        { 
            GroupInfoList<object> info = new GroupInfoList<object>(); 
            info.Key = g.GroupName; 
            foreach (var item in g.Items) 
            { 
                info.Add(item); 
            } 
            groups.Add(info); 
        } 

        return groups; 

    } 
} 
cvs2
在页面的XAML代码中定义为资源:

<common:LayoutAwarePage.Resources> 
    <CollectionViewSource x:Name="cvs2" IsSourceGrouped="true" /> 
</common:LayoutAwarePage.Resources> 

你会找到答案的

示例应用程序中的
SampleDataSource
具有以下方法:

    internal List<GroupInfoList<object>> GetGroupsByLetter() 
    { 
        List<GroupInfoList<object>> groups = new List<GroupInfoList<object>>(); 

        var query = from item in Collection 
                    orderby ((Item)item).Title 
                    group item by ((Item)item).Title[0] into g 
                    select new { GroupName = g.Key, Items = g }; 
        foreach (var g in query) 
        { 
            GroupInfoList<object> info = new GroupInfoList<object>(); 
            info.Key = g.GroupName; 
            foreach (var item in g.Items) 
            { 
                info.Add(item); 
            } 
            groups.Add(info); 
        } 

        return groups; 

    } 
} 
cvs2
在页面的XAML代码中定义为资源:

<common:LayoutAwarePage.Resources> 
    <CollectionViewSource x:Name="cvs2" IsSourceGrouped="true" /> 
</common:LayoutAwarePage.Resources> 

你会找到答案的

示例应用程序中的
SampleDataSource
具有以下方法:

    internal List<GroupInfoList<object>> GetGroupsByLetter() 
    { 
        List<GroupInfoList<object>> groups = new List<GroupInfoList<object>>(); 

        var query = from item in Collection 
                    orderby ((Item)item).Title 
                    group item by ((Item)item).Title[0] into g 
                    select new { GroupName = g.Key, Items = g }; 
        foreach (var g in query) 
        { 
            GroupInfoList<object> info = new GroupInfoList<object>(); 
            info.Key = g.GroupName; 
            foreach (var item in g.Items) 
            { 
                info.Add(item); 
            } 
            groups.Add(info); 
        } 

        return groups; 

    } 
} 
cvs2
在页面的XAML代码中定义为资源:

<common:LayoutAwarePage.Resources> 
    <CollectionViewSource x:Name="cvs2" IsSourceGrouped="true" /> 
</common:LayoutAwarePage.Resources> 

你会找到答案的

示例应用程序中的
SampleDataSource
具有以下方法:

    internal List<GroupInfoList<object>> GetGroupsByLetter() 
    { 
        List<GroupInfoList<object>> groups = new List<GroupInfoList<object>>(); 

        var query = from item in Collection 
                    orderby ((Item)item).Title 
                    group item by ((Item)item).Title[0] into g 
                    select new { GroupName = g.Key, Items = g }; 
        foreach (var g in query) 
        { 
            GroupInfoList<object> info = new GroupInfoList<object>(); 
            info.Key = g.GroupName; 
            foreach (var item in g.Items) 
            { 
                info.Add(item); 
            } 
            groups.Add(info); 
        } 

        return groups; 

    } 
} 
cvs2
在页面的XAML代码中定义为资源:

<common:LayoutAwarePage.Resources> 
    <CollectionViewSource x:Name="cvs2" IsSourceGrouped="true" /> 
</common:LayoutAwarePage.Resources> 


虽然这是大量在线样本和答案的常见问题之一,但没有努力找到答案。@FilipSkakun供您参考(为了节省您将来的时间),原因已经很清楚了。“主题外”->“询问代码的问题必须表明对正在解决的问题的最低理解。包括尝试的解决方案,为什么它们不起作用,以及预期的结果。”对,不知怎的,我寻找了它,却没有看到它。太多的文字。错误的用户体验。:)虽然这是大量在线样本和答案的常见问题之一,但没有努力找到答案。@FilipSkakun供您参考(为了节省您将来的时间),原因已经很清楚了。“主题外”->“询问代码的问题必须表明对正在解决的问题的最低理解。包括尝试的解决方案,为什么它们不起作用,以及预期的结果。”对,不知怎的,我寻找了它,却没有看到它。太多的文字。错误的用户体验。:)虽然这是大量在线样本和答案的常见问题之一,但没有努力找到答案。@FilipSkakun供您参考(为了节省您将来的时间),原因已经很清楚了。“主题外”->“询问代码的问题必须表明对正在解决的问题的最低理解。包括尝试的解决方案,为什么它们不起作用,以及预期的结果。”对,不知怎的,我寻找了它,却没有看到它。太多的文字。错误的用户体验。:)虽然这是大量在线样本和答案的常见问题之一,但没有努力找到答案。@FilipSkakun供您参考(为了节省您将来的时间),原因已经很清楚了。“主题外”->“询问代码的问题必须表明对正在解决的问题的最低理解。包括尝试的解决方案,为什么它们不起作用,以及预期的结果。”对,不知怎的,我寻找了它,却没有看到它。太多的文字。错误的用户体验。:)是的,我只是冲过去帮忙,没有时间补充更多细节。我相信也有关于Meta的讨论,讨论的是如何匆忙地投下否决票,因为我相信也有关于结束问题的讨论,而不是试图帮助提问者修正他们的方式。我错了。当我否决你的答案时,你的答案已经在这里至少30分钟了。我不觉得这是匆忙的否决票。我不理解你关于“帮助提问者改变他们的方式”的其他评论。不管怎样,我并不是想与你对抗,或者诸如此类的事情(我只是在解释我自己)。如果是那样的话,我道歉。我已经删除了我的反对票,因为我认为这个答案是有用的,编辑后。谢谢,我很感激这一点,很抱歉,仅仅是睡了5个小时后的一个糟糕的早晨就对你产生了影响。即使在凌晨1:30之前享受过编写XAML代码的乐趣。:)谢谢,我会试试的谢谢你,这个很好用!是的,我只是冲过去帮忙,没有时间补充更多细节。我相信也有关于Meta的讨论,讨论的是如何匆忙地投下否决票,因为我相信也有关于结束问题的讨论,而不是试图帮助提问者修正他们的方式。我错了。当我否决你的答案时,你的答案已经在这里至少30分钟了。我不觉得这是匆忙的否决票。我不理解你关于“帮助提问者改变他们的方式”的其他评论。不管怎样,我并不是想与你对抗,或者诸如此类的事情(我只是在解释我自己)。如果是那样的话,我道歉。我已经删除了我的反对票,因为我认为这个答案是有用的,编辑后。谢谢,我很感激这一点,很抱歉,仅仅是睡了5个小时后的一个糟糕的早晨就对你产生了影响。即使在凌晨1:30之前享受过编写XAML代码的乐趣。:)谢谢,我会试试的谢谢你,这个很好用!是的,我只是冲过去帮忙,没有时间补充更多细节。我相信也有关于Meta的讨论,讨论的是如何匆忙地投下否决票,因为我相信也有关于结束问题的讨论,而不是试图帮助提问者修正他们的方式。我错了。当我否决你的答案时,你的答案已经在这里至少30分钟了。我不觉得这是匆忙的否决票。我不理解你关于“帮助提问者改变他们的方式”的其他评论。不管怎样,我并不是想与你对抗,或者诸如此类的事情(我只是在解释我自己)。如果是那样的话,我道歉。我已经搬走了