'Declaration Public MustInherit Class GroupConfigurationSelector
'Usage Dim instance As GroupConfigurationSelector
public abstract class GroupConfigurationSelector
'Declaration Public MustInherit Class GroupConfigurationSelector
'Usage Dim instance As GroupConfigurationSelector
public abstract class GroupConfigurationSelector
<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; } } }
System.Object
Xceed.Wpf.DataGrid.GroupConfigurationSelector
Xceed.Wpf.DataGrid.FieldNameGroupConfigurationSelector
Xceed.Wpf.DataGrid.LevelGroupConfigurationSelector
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