1

大家好,我是 XAML MVVM 概念的新手,我知道需要我很少有 CollectionViewSource 的概念我有一个带有 GridView 的 WinRT 应用程序我想按专业对每个项目进行分组我创建了一个 ModelView 如何翻译为 collectionView 源我在 Google 中搜索但这里没有解决方案有几部分代码:

  <Page.Resources>
            <DataTemplate x:Key="MyDataTemplate">
                <Border  >

                    <Grid Background="DodgerBlue" Height="150" Width="200" Margin="0,-7,-7,0" RenderTransformOrigin="0.5,0.5" UseLayoutRounding="False">
                        <StackPanel VerticalAlignment="Bottom">
                            <StackPanel.Background>
                                <SolidColorBrush Color="Black" Opacity=".25"/>
                            </StackPanel.Background>
                            <TextBlock Text="{Binding Name}"/>
                            <TextBlock Text="{Binding Profession}"/>
                            <TextBlock Text="{Binding Age}"/>
                        </StackPanel>
                    </Grid>
                </Border>
            </DataTemplate>
            <ItemsPanelTemplate x:Key="ItemsPanelTemplate1">
                <VariableSizedWrapGrid x:Name="gridviewVariableSized" MaximumRowsOrColumns="4" Orientation="Vertical" />
            </ItemsPanelTemplate>

        </Page.Resources>
 <Page.DataContext>
        <ModelView:PeopleCollection/>
    </Page.DataContext>
4

1 回答 1

1

要获取 CollectionViewSource,请在您的 ViewModel 调用中

var groupable = CollectionViewSource.GetDefaultView(this.PeopleCollection);

(假设 Peoplecollection 是 ObservableCollection 或类似的东西。一旦你有了这个,你可以使用分组

groupable.GroupDescriptions.Add(new PropertyGroupDescription("Country"));
于 2013-02-19T09:52:20.700 回答