Xceed DataGrid for WPF v7.2 Documentation
GroupConfigurationSelector Class
Members  Example 


Xceed.Wpf.DataGrid Assembly > Xceed.Wpf.DataGrid Namespace : GroupConfigurationSelector Class
Represents a group-configuration selector that selects the appropriate group configuration for a group.
Syntax
'Declaration
 
Public MustInherit Class GroupConfigurationSelector 
'Usage
 
Dim instance As GroupConfigurationSelector
public abstract class GroupConfigurationSelector 
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 create a custom group-configuration selector that will return the appropriate group configuration depending on the number of items in a group. The implementation of the ItemCountGroupConfigurationSelector is provided below.
<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}">

      <xcdg:DataGridCollectionViewSource.GroupDescriptions>              

        <xcdg:DataGridGroupDescription PropertyName="ShipCity" />

      </xcdg:DataGridCollectionViewSource.GroupDescriptions>

    </xcdg:DataGridCollectionViewSource>

  </Grid.Resources>

  <xcdg:DataGridControl x:Name="OrdersGrid"

                        ItemsSource="{Binding Source={StaticResource cvs_orders}}">



    <xcdg:DataGridControl.GroupConfigurationSelector>

      <local:ItemCountGroupConfigurationSelector MinItemCount="10" />

    </xcdg:DataGridControl.GroupConfigurationSelector>

  </xcdg:DataGridControl>

</Grid>
Public Class ItemCountGroupConfigurationSelector

               Inherits GroupConfigurationSelector

    Public Sub New

    End Sub

    Public Overrides Function SelectGroupConfiguration( ByVal groupLevel As Integer, _

                    ByVal collectionViewGroup As System.Windows.Data.CollectionViewGroup, _

                    ByVal groupDescription As System.ComponentModel.GroupDescription ) As GroupConfiguration



      If collectionViewGroup Is Nothing Then

        Return MyBase.SelectGroupConfiguration( groupLevel, collectionViewGroup, groupDescription )

      End If

      Dim groupConfiguration As New GroupConfiguration()

      Dim style As New Style( GetType( Xceed.Wpf.DataGrid.DataRow ) )



      If collectionViewGroup.ItemCount <= m_minItemCount Then ' red

        style.Setters.Add( New Setter( DataRow.BackgroundProperty, Brushes.Red ) )

      Else ' green

        style.Setters.Add( New Setter( DataRow.BackgroundProperty, Brushes.LightGreen ) )

      End If

      groupConfiguration.ItemContainerStyle = style

      Return groupConfiguration

    End Function

    Private m_minItemCount As Integer = 0

    Public Property MinItemCount As Integer

      Get

        Return m_minItemCount

      End Get

      Set

        m_minItemCount = value

    End Property

  End Class
public class ItemCountGroupConfigurationSelector : GroupConfigurationSelector

  {

    public ItemCountGroupConfigurationSelector()

    {

    } 

   public override GroupConfiguration SelectGroupConfiguration( int groupLevel,

                   System.Windows.Data.CollectionViewGroup collectionViewGroup,

                   System.ComponentModel.GroupDescription groupDescription )

   {

     if( collectionViewGroup == null )

       return base.SelectGroupConfiguration( groupLevel, collectionViewGroup, groupDescription );

     GroupConfiguration groupConfiguration = new GroupConfiguration();

     Style style = new Style( typeof( Xceed.Wpf.DataGrid.DataRow ) );



     if( collectionViewGroup.ItemCount <= m_minItemCount ) // red

     {

       style.Setters.Add( new Setter( DataRow.BackgroundProperty, Brushes.Red ) );       

     }

     else // green

     {

       style.Setters.Add( new Setter( DataRow.BackgroundProperty, Brushes.LightGreen ) );       

     }

     groupConfiguration.ItemContainerStyle = style;

     return groupConfiguration;

   }

    private int m_minItemCount = 0;

    public int MinItemCount

    {

      get

      {

        return m_minItemCount;

      }

      set

      {

        if( value != m_minItemCount )

          m_minItemCount = value;

      }

    }

  }
Inheritance Hierarchy

System.Object
   Xceed.Wpf.DataGrid.GroupConfigurationSelector
      Xceed.Wpf.DataGrid.FieldNameGroupConfigurationSelector
      Xceed.Wpf.DataGrid.LevelGroupConfigurationSelector

Requirements

Target Platforms: Windows 11, Windows 10, Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

See Also

Reference

GroupConfigurationSelector Members
Xceed.Wpf.DataGrid Namespace