程序化的分组
除了内置的分组功能外,还可以使用编程方法对数据进行分组RadGridView.这是通过控件实现的GroupDescriptors收集。这一系列的IGroupDescriptor对象允许您使用描述符(GroupDescriptor或ColumnGroupDescriptor),为绑定数据定义分组标准和分组排序方向。
的GroupDescriptorsCollection是一个ObservableItemCollection这意味着您不仅可以添加描述符,还可以从中删除描述符以及清除集合。
本文将描述IGroupDescriptor接口的两种实现。
GroupDescriptor
当您向集合中添加一个新的描述符时,RadGridView的数据将根据它自动分组。示例1演示如何创建和配置组描述符。
示例1:初始化并配置组描述符
GroupDescriptor描述符= new GroupDescriptor();描述符。成员= "Country"; descriptor.SortDirection = ListSortDirection.Ascending;
作为新组描述符()描述符。成员= "国家"描述符。SortDirection= ListSortDirection.Ascending
的成员属性定义属性,数据将据此分组SortDirection属性允许您定义分组的排序方向。
示例2演示了如何在XAML中创建组描述符。
例2:在XAML中定义组描述符
例3:将描述符添加到GroupDescriptors集合
例3:将描述符添加到GroupDescriptors集合
this.radGridView.GroupDescriptors.Add(描述符);
Me.radGridView.GroupDescriptors.Add(描述符)
描述符定义之后,数据将按国家属性,将看起来好像您已经拖放了国家列标头放入分组区域。
除了成员而且SortDirection属性,GroupDescriptor公开了一个DisplayContent属性,该属性允许您更改在分组区域中表示分组的矩形的内容。
例4:设置DisplayContent属性
例4:设置DisplayContent属性
GroupDescriptor descriptor2 = new GroupDescriptor();descriptor2。成员= "Country"; descriptor2.SortDirection = ListSortDirection.Ascending; descriptor2.DisplayContent = "Country Group";
Dim descriptor2作为New GroupDescriptor() descriptor2。Member = "Country" descriptor2。SortDirection= ListSortDirection.Ascending descriptor2.DisplayContent = "Country Group"
图1:设置DisplayContent后显示在组面板中的框
在组行中,可以显示聚合函数,聚合函数显示关于组中包含的数据的信息。要了解关于如何向组行添加聚合函数的更多信息,请查看群聚集的话题。
ColumnGroupDescriptor
另一种操作RadGridView组描述符的方法是新的(在2010年第三季度添加的)ColumnGroupDescriptor类。它有三个重要的性质:
列:要分组的列。
DisplayContent:更改分组区域中显示的代表分组的矩形的内容。
SortDirection:允许您定义分组的排序方向。
如您所见,最后两个属性类似于GroupDescriptor类的相同属性。
的2011年第三季度你可以添加ColumnGroupDescriptor无论是在后面的代码和XAML.对于所有之前的版本,您只能在后面的代码中设置它。
示例5演示了如何将ColumnGroupDescriptor添加到RadGridView,该RadGridView按Name列降序分组。
例5:将ColumnGroupDescriptor添加到RadGridView
例5:将ColumnGroupDescriptor添加到RadGridView
this.radGridView.GroupDescriptors。添加(新的ColumnGroupDescriptor() {Column = this.radGridView。Columns["Name"], SortDirection = ListSortDirection。下行});
Me.radGridView.GroupDescriptors。添加(新的ColumnGroupDescriptor() {. column = Me.radGridView.Columns("Name"), . sortdirection = ListSortDirection。下行})
集团的扩张和瓦解
控件的组可以通过编程方式展开和折叠ExpandGroup而且CollapseGroup控制方法。将组传递给它们可以通过将给定的组类型转换为IGroup接口。下面的示例演示如何ExpandGroup方法可以调用。的CollapseGroup可以用同样的方式。
例6:调用RadGridView的ExpandGroup方法
var组= this.clubsGrid.Items。将[1]分组为IGroup;this.clubsGrid.ExpandGroup(集团);
Dim group = TryCast(Me.clubsGrid.Items.Groups(1), IGroup)
检查组是否扩容
的扩大方法也可用于检查层次结构项是否已展开。更多信息可在基本层次结构的话题。
在检查给定组是否展开时,扩大的方法RadGridView会派上用场。当将组作为参数传递给它时,它将返回一个布尔值,决定是否展开组。
例7:调用RadGridView的IsExpanded方法
bool isExpanded = this.clubsGrid.IsExpanded(this.clubsGrid.Items.Groups[1]);
Dim isExpanded As Boolean = Me.clubsGrid.IsExpanded(Me.clubsGrid.Items.Groups(1))