1

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

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

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

4

1 回答 1

1

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

您可以尝试创建一个 XAMLCollectionViewSource绑定到示例数据 Collection :

  1. 创建一个名为“customerSampleData”的新样本数据;
  2. 添加具有 2 个子属性(名称、年龄)的集合属性(名为“集合”);
  3. 使用 .添加CollectionViewSourcein 资源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>
于 2013-06-06T08:34:15.123 回答