Represents a group-configuration selector that selects the appropriate group configuration for a group.
Syntax
| Visual Basic (Declaration) | |
|---|
Public MustInherit Class GroupConfigurationSelector |
| C# | |
|---|
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.
| XAML | Copy 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}"> <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> |
The following code provides the implementation of the ItemCountGroupConfigurationSelector.
| Visual Basic | Copy Code |
|---|
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
style.Setters.Add( New Setter( DataRow.BackgroundProperty, Brushes.Red ) )
Else
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 |
The following code provides the implementation of the ItemCountGroupConfigurationSelector.
| C# | Copy Code |
|---|
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
Requirements
Supported Operating Systems: Windows Server 2003 Service Pack 1; Windows Vista; Windows XP Service Pack 2
See Also