Silverlight 5问题。我可以使用PagedCollectionView作为其ItemsSource(通过GroupDescriptions.Add)将项目分组到DataGrid中。没问题。但是,我们是设计师(没有经验丰富的程序员)从事原型工作并广泛使用Blend“数据”窗口,我们可以方便地创建样本数据源/集合和样本输入数据。不幸的是,GroupDescriptions.Add似乎不适用于通过“数据”窗口创建的这些基于xml的集合。
有没有办法在DataGrid中使用分组而不必使用C#?或者有没有办法对通过DataGrid中的“数据”窗口创建的样本数据进行分组?
我做了我的研究,我开始认为这可能是不可能的。我的第一篇文章,对我很轻松!谢谢 -
答案 0 :(得分:1)
如何在设计器(混合或VS)中查看Silverlight Datagrid组:
您可以尝试为示例数据集合创建XAML CollectionViewSource
绑定:
CollectionViewSource
。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>