DataGrid中的分组绑定到* sample *数据源(使用Silverlight“Data”窗口)

时间:2013-06-05 18:03:48

标签: silverlight datagrid grouping blend

Silverlight 5问题。我可以使用PagedCollectionView作为其ItemsSource(通过GroupDescriptions.Add)将项目分组到DataGrid中。没问题。但是,我们是设计师(没有经验丰富的程序员)从事原型工作并广泛使用Blend“数据”窗口,我们可以方便地创建样本数据源/集合和样本输入数据。不幸的是,GroupDescriptions.Add似乎不适用于通过“数据”窗口创建的这些基于xml的集合。

有没有办法在DataGrid中使用分组而不必使用C#?或者有没有办法对通过DataGrid中的“数据”窗口创建的样本数据进行分组?

我做了我的研究,我开始认为这可能是不可能的。我的第一篇文章,对我很轻松!谢谢 -

1 个答案:

答案 0 :(得分:1)

如何在设计器(混合或VS)中查看Silverlight Datagrid组:

您可以尝试为示例数据集合创建XAML CollectionViewSource绑定:

  1. 创建名为“customerSampleData”的新样本数据;
  2. 添加一个具有2个子属性(Name,Age)的集合属性(名为“Collection”);
  3. 使用CollectionViewSource
  4. 添加资源中的PropertyGroupDescription

    见最后一步:

    xmlns:compMod="clr-namespace:System.ComponentModel;assembly=System.Windows"
    xmlns:SampleData="clr-namespace:Expression.Blend.SampleData.customerSampleData"
    ...
    </UserControl.Resources>
        <SampleData:customerSampleData x:Key="customerSampleData" d:IsDataSource="True"/>
    
        <CollectionViewSource
            x:Key="dataSource"
            d:IsDataSource="True"
            Source="{Binding Collection, Source={StaticResource customerSampleData}}">
            <CollectionViewSource.SortDescriptions>
                <compMod:SortDescription PropertyName="Name" Direction="Ascending"/>
            </CollectionViewSource.SortDescriptions>
            <CollectionViewSource.GroupDescriptions>
                <PropertyGroupDescription PropertyName="Age"/>
            </CollectionViewSource.GroupDescriptions>
        </CollectionViewSource>
    </UserControl.Resources>
    
    <Grid x:Name="LayoutRoot" Background="White" DataContext="">
        <sdk:DataGrid  AutoGenerateColumns="False" DataContext="{Binding Source={StaticResource dataSource}}" ItemsSource="{Binding}" >
            <sdk:DataGrid.Columns>
                <sdk:DataGridTextColumn Binding="{Binding Name}" Header="Name"/>
                <sdk:DataGridTextColumn Binding="{Binding Age}" Header="Age"/>
            </sdk:DataGrid.Columns>
        </sdk:DataGrid>
    </Grid>