GroupHeaderControl Class
See Also  Members   Example 
Xceed.Wpf.DataGrid Assembly > Xceed.Wpf.DataGrid Namespace : GroupHeaderControl Class

Represents the control used as a Group header, which is used to expand and collapsed its associated group as well as display information on the group's content.

Object Model


Syntax

Visual Basic (Declaration) 
Public Class GroupHeaderControl 
   Inherits ContentControl
   Implements INotifyPropertyChangedISupportInitializeIFrameworkInputElementIInputElementIAddChildIHaveResourcesIAnimatableDUCE.IResource, IDataGridItemContainer 

Example

All examples in this topic assume that the grid is bound to the Orders table of the Northwind database, unless stated otherwise.
The following example demonstrates how to force the GroupByControl and ColumnManagerRow contained in a grid's fixed header section to occupy all the available width. By default, items in the fixed header and footer sections will only span across the width occupied by the columns.
XAMLCopy Code
<Grid xmlns:xcdg="http://schemas.xceed.com/wpf/xaml/datagrid"> 
  <Grid.Resources> 
    <xcdg:DataGridCollectionViewSource x:Key="cvs_orders" 
                                       Source="{Binding Source={x:Static Application.Current}, 
                                       Path=Orders}" 
                                       AutoCreateItemProperties="False"> 
      <xcdg:DataGridCollectionViewSource.ItemProperties> 
        <xcdg:DataGridItemProperty Name="ShipCountry"/> 
        <xcdg:DataGridItemProperty Name="ShipCity"/> 
        </xcdg:DataGridCollectionViewSource.ItemProperties> 
      </xcdg:DataGridCollectionViewSource> 
     <Style TargetType="{x:Type xcdg:GroupHeaderControl}"> 
       <Setter Property="MinWidth" 
               Value="{Binding RelativeSource={RelativeSource AncestorType={x:Type ScrollContentPresenter}}, 
                               Path=ActualWidth}"/> 
     </Style> 
     <Style TargetType="{x:Type xcdg:ColumnManagerRow}"> 
       <Setter Property="MinWidth" 
               Value="{Binding RelativeSource={RelativeSource AncestorType={x:Type ScrollContentPresenter}}, 
                               Path=ActualWidth}"/> 
     </Style> 
    </Grid.Resources> 
    <xcdg:DataGridControl x:Name="OrdersGrid" 
                         ItemsSource="{Binding Source={StaticResource cvs_orders}}"/> 
</Grid>
The following example demonstrates how to provide, through a style, a new GroupHeaderControl template.
XAMLCopy Code
<Grid xmlns:xcdg="http://schemas.xceed.com/wpf/xaml/datagrid"> 
  <Grid.Resources> 
 
    <Style TargetType="{x:Type xcdg:GroupHeaderControl}"> 
      <Setter Property="Template"> 
        <Setter.Value> 
          <ControlTemplate TargetType="{x:Type xcdg:GroupHeaderControl}"> 
            <Border Background="Orange" BorderThickness="2"> 
              <StackPanel Orientation="Horizontal"> 
                <CheckBox IsChecked="{Binding RelativeSource={RelativeSource 
                                      TemplatedParent}, Path=Group.IsExpanded}"/> 
 
                <ContentPresenter/> 
              </StackPanel> 
            </Border> 
 
          </ControlTemplate> 
        </Setter.Value> 
      </Setter> 
    </Style> 
    <xcdg:DataGridCollectionViewSource x:Key="cvs_orders" 
                                     Source="{Binding Source={x:Static Application.Current}, 
                                                      Path=Orders}"> 
      <xcdg:DataGridCollectionViewSource.GroupDescriptions> 
        <xcdg:DataGridGroupDescription PropertyName="ShipCountry"/> 
      </xcdg:DataGridCollectionViewSource.GroupDescriptions> 
    </xcdg:DataGridCollectionViewSource> 
  </Grid.Resources> 
  <xcdg:DataGridControl x:Name="OrdersGrid" 
                        ItemsSource="{Binding Source={StaticResource cvs_orders}}"/> 
</Grid>
The following example demonstrates how to change the information displayed in each GroupHeaderControl by creating an implicit DataTemplate targeting the Group data type.
XAMLCopy Code
<Grid> 
  <Grid.Resources> 
    <xcdg:DataGridCollectionViewSource x:Key="cvs_orders" 
                                       Source="{Binding Source={x:Static Application.Current}, 
                                                        Path=Orders}"> 
      <xcdg:DataGridCollectionViewSource.GroupDescriptions> 
        <xcdg:DataGridGroupDescription PropertyName="ShipCountry"/> 
      </xcdg:DataGridCollectionViewSource.GroupDescriptions> 
    </xcdg:DataGridCollectionViewSource> 
    <DataTemplate DataType="{x:Type xcdg:Group}"> 
      <StackPanel Orientation="Horizontal"> 
        <TextBlock Text="The "/> 
        <TextBlock Text="{Binding Value}"/> 
        <TextBlock Text=" group contains "/> 
        <TextBlock Text="{Binding Items.Count}"/> 
        <TextBlock Text=" items."/> 
      </StackPanel> 
    </DataTemplate> 
  </Grid.Resources> 
  <xcdg:DataGridControl x:Name="OrdersGrid" 
                        ItemsSource="{Binding Source={StaticResource cvs_orders}}"/> 
</Grid>

Inheritance Hierarchy

System.Object
   System.Windows.Threading.DispatcherObject
      System.Windows.DependencyObject
         System.Windows.Media.Visual
            System.Windows.UIElement
               System.Windows.FrameworkElement
                  System.Windows.Controls.Control
                     System.Windows.Controls.ContentControl
                        Xceed.Wpf.DataGrid.GroupHeaderControl

Requirements

Supported Operating Systems: Windows Server 2003 Service Pack 1; Windows Vista; Windows XP Service Pack 2

See Also