Xceed Toolkit Plus for WPF v5.1 Documentation
Xceed.Wpf.DataGrid.Toolkit Assembly / Xceed.Wpf.DataGrid Namespace / GroupConfigurationSelector Class
Example


In This Topic
    GroupConfigurationSelector Class
    In This Topic
    Represents a group-configuration selector that selects the appropriate group configuration for a group.
    Object Model
    GroupConfigurationSelector ClassGroupConfiguration Class
    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.The following code provides the implementation of the ItemCountGroupConfigurationSelector.The following code provides the implementation of the ItemCountGroupConfigurationSelector.
    <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
    Public Methods
     NameDescription
    Public MethodSelects the appropriate group configuration based on the specified information.  
    Top
    Supported Frameworks

    .NET: net5.0, net5.0-windows, net6.0, net6.0-macos, net6.0-windows, net7.0, net7.0-macos, net7.0-windows, net8.0, net8.0-browser, net8.0-macos, net8.0-windows, net9.0, net9.0-browser, net9.0-macos, net9.0-windows, net10.0, net10.0-browser, net10.0-macos, net10.0-windows.

    .NET Framework: net40, net403, net45, net451, net452, net46, net461, net462, net463, net47, net471, net472, net48, net481.

    See Also