用于WPF的Telerik UI?下载30天免费试用

程序化的分组

除了内置的分组功能外,还可以使用编程方法对数据进行分组RadGridView.这是通过控件实现的GroupDescriptors收集。这一系列的IGroupDescriptor对象允许您使用描述符(GroupDescriptorColumnGroupDescriptor),为绑定数据定义分组标准和分组排序方向。

GroupDescriptorsCollection是一个ObservableItemCollection这意味着您不仅可以添加描述符,还可以从中删除描述符以及清除集合。

本文将描述IGroupDescriptor接口的两种实现。

GroupDescriptor

当您向集合中添加一个新的描述符时,RadGridView的数据将根据它自动分组。示例1演示如何创建和配置组描述符。

示例1:初始化并配置组描述符

GroupDescriptor描述符= new GroupDescriptor();描述符。成员= "Country"; descriptor.SortDirection = ListSortDirection.Ascending;
作为新组描述符()描述符。成员= "国家"描述符。SortDirection= ListSortDirection.Ascending

成员属性定义属性,数据将据此分组SortDirection属性允许您定义分组的排序方向。

示例2演示了如何在XAML中创建组描述符。

例2:在XAML中定义组描述符

控件中创建的描述符对数据进行分组RadGridView你必须把它加到GroupDescriptors收集。

例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后显示在组面板中的框

Telerik WPF DataGrid programaticgrouping 1

在组行中,可以显示聚合函数,聚合函数显示关于组中包含的数据的信息。要了解关于如何向组行添加聚合函数的更多信息,请查看群聚集的话题。

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))

另请参阅

在本文中
Baidu
map