This question is locked. New answers and comments are not allowed.
Hi,
We are currently using this Style for the GridViewGroupRow:
---------------------------------------------
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:telerik="clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls"
xmlns:GridView="clr-namespace:Telerik.Windows.Controls.GridView;assembly=Telerik.Windows.Controls.GridView"
xmlns:ValueConverters="clr-namespace:Cobra2009.ValueConverters">
<ValueConverters:AggregatesConverter x:Key="AggregatesConverter" />
<telerik:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />
<telerik:Windows7Theme x:Key="BaseTheme"/>
<SolidColorBrush x:Key="ControlOuterBorder" Color="#FF848484"/>
<SolidColorBrush x:Key="ControlInnerBorder" Color="White"/>
<SolidColorBrush x:Key="GridView_GroupRowIndicator" Color="Black"/>
<SolidColorBrush x:Key="GridView_RowIndicatorCellBackground" Color="#FFE4E4E4"/>
<SolidColorBrush x:Key="GridView_GroupRowBackground" Color="#FFE4E4E4"/>
<SolidColorBrush x:Key="GridView_GridLinesItemBorder" Color="#FFCBCBCB"/>
<ControlTemplate x:Key="GridViewGroupToggleButtonTemplate" TargetType="ToggleButton">
<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}">
<ContentPresenter/>
</Border>
</ControlTemplate>
<Style x:Key="GridViewGroupToggleButtonStyle" TargetType="ToggleButton">
<Setter Property="Template" Value="{StaticResource GridViewGroupToggleButtonTemplate}"/>
<Setter Property="HorizontalContentAlignment" Value="Left"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="Padding" Value="9,0,0,0"/>
</Style>
<LinearGradientBrush x:Key="HeaderColour" EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FFD3213B"/>
<GradientStop Color="#FF706F70" Offset="1"/>
<GradientStop Color="#FF040404" Offset="0.252"/>
</LinearGradientBrush>
<ControlTemplate x:Key="GridViewGroupRowTemplate" TargetType="GridView:GridViewGroupRow">
<Grid x:Name="PART_GroupExpanderGrid">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition x:Name="PART_HeaderRow" MinHeight="{TemplateBinding MinHeight}"/>
<RowDefinition x:Name="ContentRow" Height="Auto"/>
</Grid.RowDefinitions>
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="ExpandStateGroup">
<VisualState x:Name="Expanded">
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility" Storyboard.TargetName="Content">
<DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Visible"/>
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility" Storyboard.TargetName="BottomBorder">
<DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Visible"/>
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="BorderThickness" Storyboard.TargetName="IconOuterBorder">
<DiscreteObjectKeyFrame KeyTime="0:0:0" Value="0,0,0,0"/>
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="BorderThickness" Storyboard.TargetName="IconInnerBorder">
<DiscreteObjectKeyFrame KeyTime="0:0:0" Value="1,1,0,0"/>
</ObjectAnimationUsingKeyFrames>
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetProperty="(UIElement.RenderTransform).(RotateTransform.Angle)" Storyboard.TargetName="ExpanderButton">
<EasingDoubleKeyFrame KeyTime="00:00:00.2" Value="180"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
<VisualState x:Name="Collapsed">
<Storyboard>
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetProperty="(UIElement.RenderTransform).(RotateTransform.Angle)" Storyboard.TargetName="ExpanderButton">
<EasingDoubleKeyFrame KeyTime="00:00:00.2" Value="0"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Border x:Name="ToggleButtonBorder" Background="{TemplateBinding Background}" Grid.ColumnSpan="2" Grid.Column="2" MinHeight="{TemplateBinding MinHeight}" GridView:SelectiveScrollingGrid.SelectiveScrollingClip="True">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="25"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Border Grid.Column="2" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" GridView:SelectiveScrollingGrid.SelectiveScrollingClip="True" Visibility="{Binding ShowHeaderAggregates, Converter={StaticResource BooleanToVisibilityConverter}, RelativeSource={RelativeSource TemplatedParent}}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}">
<GridView:AggregateResultsList
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
ItemsSource="{Binding AggregateResults, Mode=TwoWay, Converter={StaticResource AggregatesConverter}}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}">
<GridView:AggregateResultsList.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" Margin="10,0" />
</ItemsPanelTemplate>
</GridView:AggregateResultsList.ItemsPanel>
<GridView:AggregateResultsList.ItemTemplate>
<DataTemplate>
<Grid VerticalAlignment="Center" Margin="0,0,5,0" DataContext="{Binding}" MinWidth="200" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="60" />
<ColumnDefinition Width="*" MinWidth="100" />
</Grid.ColumnDefinitions>
<TextBlock Margin="2,0" TextAlignment="Left" VerticalAlignment="Center" Foreground="{TemplateBinding Foreground}" Text="{Binding Caption}"/>
<TextBlock Grid.Column="1" Margin="2,0,40,0" TextAlignment="Right" VerticalAlignment="Center" Foreground="{TemplateBinding Foreground}" Text="{Binding FormattedValue}" />
</Grid>
</DataTemplate>
</GridView:AggregateResultsList.ItemTemplate>
</GridView:AggregateResultsList>
</Border>
<Border x:Name="IconOuterBorder" BorderBrush="{StaticResource ControlOuterBorder}" BorderThickness="0,0,0,1" Background="Transparent" HorizontalAlignment="Stretch" GridView:SelectiveScrollingGrid.SelectiveScrollingOrientation="Vertical">
<Border x:Name="IconInnerBorder" BorderBrush="{StaticResource ControlInnerBorder}" BorderThickness="1,1,0,1">
<Path x:Name="ExpanderButton" Grid.Column="0" Data="M0,0L1,0 2,0 2,0.99999991 3,0.99999991 3,2 4,2 4,0.99999991 5,0.99999991 5,0 5.9999999,0 7,0 7,0.99999991 5.9999999,0.99999991 5.9999999,2 5,2 5,3 4,3 4,4 3,4 3,3 2,3 2,2 1,2 1,0.99999991 0,0.99999991z" Fill="{StaticResource GridView_GroupRowIndicator}" HorizontalAlignment="Left" Height="5" Margin="{TemplateBinding Padding}" RenderTransformOrigin="0.5,0.5" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Width="7">
<Path.RenderTransform>
<RotateTransform/>
</Path.RenderTransform>
</Path>
</Border>
</Border>
<ToggleButton x:Name="HeaderButton" Foreground="White" Background="{StaticResource HeaderColour}" Grid.ColumnSpan="3" Grid.Column="0" IsTabStop="{TemplateBinding IsTabStop}" IsChecked="{Binding IsExpanded, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" Opacity="0" GridView:SelectiveScrollingGrid.SelectiveScrollingOrientation="Vertical"/>
<ToggleButton MinWidth="100" Foreground="White" BorderBrush="{x:Null}" BorderThickness="0" Background="{StaticResource HeaderColour}" Grid.Column="1" IsTabStop="{TemplateBinding IsTabStop}" IsChecked="{Binding IsExpanded, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" Padding="0,0,10,0" Style="{StaticResource GridViewGroupToggleButtonStyle}" GridView:SelectiveScrollingGrid.SelectiveScrollingOrientation="Vertical">
<ContentPresenter ContentTemplate="{TemplateBinding GroupHeaderTemplate}" Content="{TemplateBinding GroupViewModel}" Grid.Column="1" Margin="0,0,10,0" VerticalAlignment="Center"/>
</ToggleButton>
<Border BorderBrush="{StaticResource ControlOuterBorder}" BorderThickness="0,0,0,1" Grid.ColumnSpan="2" Grid.Column="1" GridView:SelectiveScrollingGrid.SelectiveScrollingClip="True">
<Border BorderBrush="{StaticResource ControlInnerBorder}" BorderThickness="0,1,1,1"/>
</Border>
</Grid>
</Border>
<Border x:Name="PART_IndicatorPresenter" BorderBrush="{StaticResource ControlOuterBorder}" BorderThickness="0,0,1,1" Grid.Column="0" GridView:SelectiveScrollingGrid.SelectiveScrollingOrientation="Vertical" Visibility="{TemplateBinding RowIndicatorVisibility}" VerticalAlignment="Stretch" Width="25">
<Border BorderBrush="{StaticResource ControlInnerBorder}" BorderThickness="1" Background="{StaticResource GridView_RowIndicatorCellBackground}"/>
</Border>
<GridView:IndentPresenter Background="{TemplateBinding Background}" Grid.Column="1" IndentLevel="{TemplateBinding Level}" GridView:SelectiveScrollingGrid.SelectiveScrollingOrientation="Vertical" telerik:StyleManager.Theme="{StaticResource BaseTheme}"/>
<Border x:Name="Content" Grid.ColumnSpan="5" Grid.Column="0" Grid.Row="1" Visibility="Collapsed">
<StackPanel>
<GridView:GridViewGroupFooterRow x:Name="Footer" telerik:StyleManager.Theme="{StaticResource BaseTheme}" Background="LightGray"/>
<GridView:GridViewVirtualizingPanel x:Name="PART_GridViewVirtualizingPanel"/>
</StackPanel>
</Border>
<Border x:Name="BottomBorder" BorderBrush="{StaticResource ControlOuterBorder}" BorderThickness="0,0,0,1" Grid.Column="2" Grid.Row="1" Visibility="Collapsed" VerticalAlignment="Bottom"/>
</Grid>
</ControlTemplate>
</ResourceDictionary>
-------------------------------------------------------------------------
When we try and display the footer column in the Header, this breaks the sum. The GroupRow displays the wrong values for the rows:
This is what we are using as the style:
--------------------------------------------------------------------------
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:telerik="clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls"
xmlns:GridView="clr-namespace:Telerik.Windows.Controls.GridView;assembly=Telerik.Windows.Controls.GridView"
xmlns:ValueConverters="clr-namespace:Cobra2009.ValueConverters">
<ValueConverters:AggregatesConverter x:Key="AggregatesConverter" />
<telerik:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />
<telerik:Windows7Theme x:Key="BaseTheme"/>
<SolidColorBrush x:Key="ControlOuterBorder" Color="#FF848484"/>
<SolidColorBrush x:Key="ControlInnerBorder" Color="White"/>
<SolidColorBrush x:Key="GridView_GroupRowIndicator" Color="Black"/>
<SolidColorBrush x:Key="GridView_RowIndicatorCellBackground" Color="#FFE4E4E4"/>
<SolidColorBrush x:Key="GridView_GroupRowBackground" Color="#FFE4E4E4"/>
<SolidColorBrush x:Key="GridView_GridLinesItemBorder" Color="#FFCBCBCB"/>
<ControlTemplate x:Key="GridViewGroupToggleButtonTemplate" TargetType="ToggleButton">
<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}">
<ContentPresenter/>
</Border>
</ControlTemplate>
<Style x:Key="GridViewGroupToggleButtonStyle" TargetType="ToggleButton">
<Setter Property="Template" Value="{StaticResource GridViewGroupToggleButtonTemplate}"/>
<Setter Property="HorizontalContentAlignment" Value="Left"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="Padding" Value="9,0,0,0"/>
</Style>
<ControlTemplate x:Key="GridViewGroupRowTemplate" TargetType="GridView:GridViewGroupRow">
<Grid x:Name="PART_GroupExpanderGrid">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition x:Name="PART_HeaderRow" MinHeight="{TemplateBinding MinHeight}"/>
<RowDefinition x:Name="ContentRow" Height="Auto"/>
</Grid.RowDefinitions>
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="ExpandStateGroup">
<VisualState x:Name="Expanded">
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility" Storyboard.TargetName="CollapseGrid">
<DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Visible"/>
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility" Storyboard.TargetName="BottomBorder">
<DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Visible"/>
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="BorderThickness" Storyboard.TargetName="IconOuterBorder">
<DiscreteObjectKeyFrame KeyTime="0:0:0" Value="0,0,0,0"/>
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="BorderThickness" Storyboard.TargetName="IconInnerBorder">
<DiscreteObjectKeyFrame KeyTime="0:0:0" Value="1,1,0,0"/>
</ObjectAnimationUsingKeyFrames>
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetProperty="(UIElement.RenderTransform).(RotateTransform.Angle)" Storyboard.TargetName="ExpanderButton">
<EasingDoubleKeyFrame KeyTime="00:00:00.2" Value="180"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
<VisualState x:Name="Collapsed">
<Storyboard>
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetProperty="(UIElement.RenderTransform).(RotateTransform.Angle)" Storyboard.TargetName="ExpanderButton">
<EasingDoubleKeyFrame KeyTime="00:00:00.2" Value="0"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Border x:Name="Content" Grid.ColumnSpan="5" Grid.Column="2" Grid.Row="1">
<StackPanel VirtualizingStackPanel.VirtualizationMode="Recycling">
<Border x:Name="ToggleButtonBorder" Background="{TemplateBinding Background}" Grid.ColumnSpan="2" Grid.Column="2" MinHeight="{TemplateBinding MinHeight}" GridView:SelectiveScrollingGrid.SelectiveScrollingClip="True">
<Grid>
<GridView:GridViewGroupFooterRow x:Name="Footer" telerik:StyleManager.Theme="{StaticResource BaseTheme}" />
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="25"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<!--<Border Grid.Column="2" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" GridView:SelectiveScrollingGrid.SelectiveScrollingClip="True" Visibility="{Binding ShowHeaderAggregates, Converter={StaticResource BooleanToVisibilityConverter}, RelativeSource={RelativeSource TemplatedParent}}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" />-->
<Border x:Name="IconOuterBorder" BorderBrush="{StaticResource ControlOuterBorder}" BorderThickness="0,0,0,1" Background="Transparent" HorizontalAlignment="Stretch" GridView:SelectiveScrollingGrid.SelectiveScrollingOrientation="Vertical">
<Border x:Name="IconInnerBorder" BorderBrush="{StaticResource ControlInnerBorder}" BorderThickness="1,1,0,1">
<Path x:Name="ExpanderButton" Grid.Column="0" Data="M0,0L1,0 2,0 2,0.99999991 3,0.99999991 3,2 4,2 4,0.99999991 5,0.99999991 5,0 5.9999999,0 7,0 7,0.99999991 5.9999999,0.99999991 5.9999999,2 5,2 5,3 4,3 4,4 3,4 3,3 2,3 2,2 1,2 1,0.99999991 0,0.99999991z" Fill="{StaticResource GridView_GroupRowIndicator}" HorizontalAlignment="Left" Height="5" Margin="{TemplateBinding Padding}" RenderTransformOrigin="0.5,0.5" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Width="7">
<Path.RenderTransform>
<RotateTransform/>
</Path.RenderTransform>
</Path>
</Border>
</Border>
<ToggleButton x:Name="HeaderButton" Background="Transparent" Grid.ColumnSpan="3" Grid.Column="0" IsTabStop="{TemplateBinding IsTabStop}" IsChecked="{Binding IsExpanded, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" Opacity="0" GridView:SelectiveScrollingGrid.SelectiveScrollingOrientation="Vertical"/>
<ToggleButton MinWidth="75" BorderBrush="{x:Null}" BorderThickness="0" Foreground="White" Grid.Column="1" IsTabStop="{TemplateBinding IsTabStop}" IsChecked="{Binding IsExpanded, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" Padding="0,0,10,0" Style="{StaticResource GridViewGroupToggleButtonStyle}" GridView:SelectiveScrollingGrid.SelectiveScrollingOrientation="Vertical">
<ToggleButton.Background>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FFD3213B"/>
<GradientStop Color="#FF706F70" Offset="1"/>
<GradientStop Color="#FF040404" Offset="0.252"/>
</LinearGradientBrush>
</ToggleButton.Background>
<ContentPresenter ContentTemplate="{TemplateBinding GroupHeaderTemplate}" Content="{TemplateBinding GroupViewModel}" Grid.Column="1" Margin="0,0,10,0" VerticalAlignment="Center"/>
</ToggleButton>
<Border BorderBrush="{StaticResource ControlOuterBorder}" BorderThickness="0,0,0,1" Grid.ColumnSpan="2" Grid.Column="1" GridView:SelectiveScrollingGrid.SelectiveScrollingClip="True">
<Border BorderBrush="{StaticResource ControlInnerBorder}" BorderThickness="0,1,1,1"/>
</Border>
<Border BorderBrush="{StaticResource ControlOuterBorder}" BorderThickness="0,0,0,1" Grid.ColumnSpan="3" Grid.Column="0" GridView:SelectiveScrollingGrid.SelectiveScrollingClip="True">
<Border BorderBrush="{StaticResource ControlInnerBorder}" BorderThickness="0,1,1,1"/>
</Border>
</Grid>
</Grid>
</Border>
<Grid x:Name="CollapseGrid" Grid.ColumnSpan="5" Grid.Column="0" Grid.Row="1" Visibility="Collapsed">
<GridView:GridViewVirtualizingPanel x:Name="PART_GridViewVirtualizingPanel"/>
</Grid>
</StackPanel>
</Border>
<Border x:Name="PART_IndicatorPresenter" BorderBrush="{StaticResource ControlOuterBorder}" BorderThickness="0,0,1,1" Grid.Column="0" GridView:SelectiveScrollingGrid.SelectiveScrollingOrientation="Vertical" Visibility="{TemplateBinding RowIndicatorVisibility}" VerticalAlignment="Stretch" Width="25">
<Border BorderBrush="{StaticResource ControlInnerBorder}" BorderThickness="1" Background="{StaticResource GridView_RowIndicatorCellBackground}"/>
</Border>
<GridView:IndentPresenter Background="{TemplateBinding Background}" Grid.Column="1" IndentLevel="{TemplateBinding Level}" GridView:SelectiveScrollingGrid.SelectiveScrollingOrientation="Vertical" telerik:StyleManager.Theme="{StaticResource BaseTheme}"/>
<Border x:Name="BottomBorder" BorderBrush="{StaticResource ControlOuterBorder}" BorderThickness="0,0,0,1" Grid.Column="2" Grid.Row="1" Visibility="Collapsed" VerticalAlignment="Bottom"/>
</Grid>
</ControlTemplate>
</ResourceDictionary>
-----------------------------------------------
Is there a bug with the GroupRowFooter that it displays the wrong value if displayed as the header?
We are currently using this Style for the GridViewGroupRow:
---------------------------------------------
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:telerik="clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls"
xmlns:GridView="clr-namespace:Telerik.Windows.Controls.GridView;assembly=Telerik.Windows.Controls.GridView"
xmlns:ValueConverters="clr-namespace:Cobra2009.ValueConverters">
<ValueConverters:AggregatesConverter x:Key="AggregatesConverter" />
<telerik:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />
<telerik:Windows7Theme x:Key="BaseTheme"/>
<SolidColorBrush x:Key="ControlOuterBorder" Color="#FF848484"/>
<SolidColorBrush x:Key="ControlInnerBorder" Color="White"/>
<SolidColorBrush x:Key="GridView_GroupRowIndicator" Color="Black"/>
<SolidColorBrush x:Key="GridView_RowIndicatorCellBackground" Color="#FFE4E4E4"/>
<SolidColorBrush x:Key="GridView_GroupRowBackground" Color="#FFE4E4E4"/>
<SolidColorBrush x:Key="GridView_GridLinesItemBorder" Color="#FFCBCBCB"/>
<ControlTemplate x:Key="GridViewGroupToggleButtonTemplate" TargetType="ToggleButton">
<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}">
<ContentPresenter/>
</Border>
</ControlTemplate>
<Style x:Key="GridViewGroupToggleButtonStyle" TargetType="ToggleButton">
<Setter Property="Template" Value="{StaticResource GridViewGroupToggleButtonTemplate}"/>
<Setter Property="HorizontalContentAlignment" Value="Left"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="Padding" Value="9,0,0,0"/>
</Style>
<LinearGradientBrush x:Key="HeaderColour" EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FFD3213B"/>
<GradientStop Color="#FF706F70" Offset="1"/>
<GradientStop Color="#FF040404" Offset="0.252"/>
</LinearGradientBrush>
<ControlTemplate x:Key="GridViewGroupRowTemplate" TargetType="GridView:GridViewGroupRow">
<Grid x:Name="PART_GroupExpanderGrid">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition x:Name="PART_HeaderRow" MinHeight="{TemplateBinding MinHeight}"/>
<RowDefinition x:Name="ContentRow" Height="Auto"/>
</Grid.RowDefinitions>
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="ExpandStateGroup">
<VisualState x:Name="Expanded">
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility" Storyboard.TargetName="Content">
<DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Visible"/>
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility" Storyboard.TargetName="BottomBorder">
<DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Visible"/>
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="BorderThickness" Storyboard.TargetName="IconOuterBorder">
<DiscreteObjectKeyFrame KeyTime="0:0:0" Value="0,0,0,0"/>
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="BorderThickness" Storyboard.TargetName="IconInnerBorder">
<DiscreteObjectKeyFrame KeyTime="0:0:0" Value="1,1,0,0"/>
</ObjectAnimationUsingKeyFrames>
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetProperty="(UIElement.RenderTransform).(RotateTransform.Angle)" Storyboard.TargetName="ExpanderButton">
<EasingDoubleKeyFrame KeyTime="00:00:00.2" Value="180"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
<VisualState x:Name="Collapsed">
<Storyboard>
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetProperty="(UIElement.RenderTransform).(RotateTransform.Angle)" Storyboard.TargetName="ExpanderButton">
<EasingDoubleKeyFrame KeyTime="00:00:00.2" Value="0"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Border x:Name="ToggleButtonBorder" Background="{TemplateBinding Background}" Grid.ColumnSpan="2" Grid.Column="2" MinHeight="{TemplateBinding MinHeight}" GridView:SelectiveScrollingGrid.SelectiveScrollingClip="True">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="25"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Border Grid.Column="2" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" GridView:SelectiveScrollingGrid.SelectiveScrollingClip="True" Visibility="{Binding ShowHeaderAggregates, Converter={StaticResource BooleanToVisibilityConverter}, RelativeSource={RelativeSource TemplatedParent}}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}">
<GridView:AggregateResultsList
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
ItemsSource="{Binding AggregateResults, Mode=TwoWay, Converter={StaticResource AggregatesConverter}}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}">
<GridView:AggregateResultsList.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" Margin="10,0" />
</ItemsPanelTemplate>
</GridView:AggregateResultsList.ItemsPanel>
<GridView:AggregateResultsList.ItemTemplate>
<DataTemplate>
<Grid VerticalAlignment="Center" Margin="0,0,5,0" DataContext="{Binding}" MinWidth="200" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="60" />
<ColumnDefinition Width="*" MinWidth="100" />
</Grid.ColumnDefinitions>
<TextBlock Margin="2,0" TextAlignment="Left" VerticalAlignment="Center" Foreground="{TemplateBinding Foreground}" Text="{Binding Caption}"/>
<TextBlock Grid.Column="1" Margin="2,0,40,0" TextAlignment="Right" VerticalAlignment="Center" Foreground="{TemplateBinding Foreground}" Text="{Binding FormattedValue}" />
</Grid>
</DataTemplate>
</GridView:AggregateResultsList.ItemTemplate>
</GridView:AggregateResultsList>
</Border>
<Border x:Name="IconOuterBorder" BorderBrush="{StaticResource ControlOuterBorder}" BorderThickness="0,0,0,1" Background="Transparent" HorizontalAlignment="Stretch" GridView:SelectiveScrollingGrid.SelectiveScrollingOrientation="Vertical">
<Border x:Name="IconInnerBorder" BorderBrush="{StaticResource ControlInnerBorder}" BorderThickness="1,1,0,1">
<Path x:Name="ExpanderButton" Grid.Column="0" Data="M0,0L1,0 2,0 2,0.99999991 3,0.99999991 3,2 4,2 4,0.99999991 5,0.99999991 5,0 5.9999999,0 7,0 7,0.99999991 5.9999999,0.99999991 5.9999999,2 5,2 5,3 4,3 4,4 3,4 3,3 2,3 2,2 1,2 1,0.99999991 0,0.99999991z" Fill="{StaticResource GridView_GroupRowIndicator}" HorizontalAlignment="Left" Height="5" Margin="{TemplateBinding Padding}" RenderTransformOrigin="0.5,0.5" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Width="7">
<Path.RenderTransform>
<RotateTransform/>
</Path.RenderTransform>
</Path>
</Border>
</Border>
<ToggleButton x:Name="HeaderButton" Foreground="White" Background="{StaticResource HeaderColour}" Grid.ColumnSpan="3" Grid.Column="0" IsTabStop="{TemplateBinding IsTabStop}" IsChecked="{Binding IsExpanded, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" Opacity="0" GridView:SelectiveScrollingGrid.SelectiveScrollingOrientation="Vertical"/>
<ToggleButton MinWidth="100" Foreground="White" BorderBrush="{x:Null}" BorderThickness="0" Background="{StaticResource HeaderColour}" Grid.Column="1" IsTabStop="{TemplateBinding IsTabStop}" IsChecked="{Binding IsExpanded, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" Padding="0,0,10,0" Style="{StaticResource GridViewGroupToggleButtonStyle}" GridView:SelectiveScrollingGrid.SelectiveScrollingOrientation="Vertical">
<ContentPresenter ContentTemplate="{TemplateBinding GroupHeaderTemplate}" Content="{TemplateBinding GroupViewModel}" Grid.Column="1" Margin="0,0,10,0" VerticalAlignment="Center"/>
</ToggleButton>
<Border BorderBrush="{StaticResource ControlOuterBorder}" BorderThickness="0,0,0,1" Grid.ColumnSpan="2" Grid.Column="1" GridView:SelectiveScrollingGrid.SelectiveScrollingClip="True">
<Border BorderBrush="{StaticResource ControlInnerBorder}" BorderThickness="0,1,1,1"/>
</Border>
</Grid>
</Border>
<Border x:Name="PART_IndicatorPresenter" BorderBrush="{StaticResource ControlOuterBorder}" BorderThickness="0,0,1,1" Grid.Column="0" GridView:SelectiveScrollingGrid.SelectiveScrollingOrientation="Vertical" Visibility="{TemplateBinding RowIndicatorVisibility}" VerticalAlignment="Stretch" Width="25">
<Border BorderBrush="{StaticResource ControlInnerBorder}" BorderThickness="1" Background="{StaticResource GridView_RowIndicatorCellBackground}"/>
</Border>
<GridView:IndentPresenter Background="{TemplateBinding Background}" Grid.Column="1" IndentLevel="{TemplateBinding Level}" GridView:SelectiveScrollingGrid.SelectiveScrollingOrientation="Vertical" telerik:StyleManager.Theme="{StaticResource BaseTheme}"/>
<Border x:Name="Content" Grid.ColumnSpan="5" Grid.Column="0" Grid.Row="1" Visibility="Collapsed">
<StackPanel>
<GridView:GridViewGroupFooterRow x:Name="Footer" telerik:StyleManager.Theme="{StaticResource BaseTheme}" Background="LightGray"/>
<GridView:GridViewVirtualizingPanel x:Name="PART_GridViewVirtualizingPanel"/>
</StackPanel>
</Border>
<Border x:Name="BottomBorder" BorderBrush="{StaticResource ControlOuterBorder}" BorderThickness="0,0,0,1" Grid.Column="2" Grid.Row="1" Visibility="Collapsed" VerticalAlignment="Bottom"/>
</Grid>
</ControlTemplate>
</ResourceDictionary>
-------------------------------------------------------------------------
When we try and display the footer column in the Header, this breaks the sum. The GroupRow displays the wrong values for the rows:
This is what we are using as the style:
--------------------------------------------------------------------------
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:telerik="clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls"
xmlns:GridView="clr-namespace:Telerik.Windows.Controls.GridView;assembly=Telerik.Windows.Controls.GridView"
xmlns:ValueConverters="clr-namespace:Cobra2009.ValueConverters">
<ValueConverters:AggregatesConverter x:Key="AggregatesConverter" />
<telerik:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />
<telerik:Windows7Theme x:Key="BaseTheme"/>
<SolidColorBrush x:Key="ControlOuterBorder" Color="#FF848484"/>
<SolidColorBrush x:Key="ControlInnerBorder" Color="White"/>
<SolidColorBrush x:Key="GridView_GroupRowIndicator" Color="Black"/>
<SolidColorBrush x:Key="GridView_RowIndicatorCellBackground" Color="#FFE4E4E4"/>
<SolidColorBrush x:Key="GridView_GroupRowBackground" Color="#FFE4E4E4"/>
<SolidColorBrush x:Key="GridView_GridLinesItemBorder" Color="#FFCBCBCB"/>
<ControlTemplate x:Key="GridViewGroupToggleButtonTemplate" TargetType="ToggleButton">
<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}">
<ContentPresenter/>
</Border>
</ControlTemplate>
<Style x:Key="GridViewGroupToggleButtonStyle" TargetType="ToggleButton">
<Setter Property="Template" Value="{StaticResource GridViewGroupToggleButtonTemplate}"/>
<Setter Property="HorizontalContentAlignment" Value="Left"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="Padding" Value="9,0,0,0"/>
</Style>
<ControlTemplate x:Key="GridViewGroupRowTemplate" TargetType="GridView:GridViewGroupRow">
<Grid x:Name="PART_GroupExpanderGrid">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition x:Name="PART_HeaderRow" MinHeight="{TemplateBinding MinHeight}"/>
<RowDefinition x:Name="ContentRow" Height="Auto"/>
</Grid.RowDefinitions>
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="ExpandStateGroup">
<VisualState x:Name="Expanded">
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility" Storyboard.TargetName="CollapseGrid">
<DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Visible"/>
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility" Storyboard.TargetName="BottomBorder">
<DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Visible"/>
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="BorderThickness" Storyboard.TargetName="IconOuterBorder">
<DiscreteObjectKeyFrame KeyTime="0:0:0" Value="0,0,0,0"/>
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="BorderThickness" Storyboard.TargetName="IconInnerBorder">
<DiscreteObjectKeyFrame KeyTime="0:0:0" Value="1,1,0,0"/>
</ObjectAnimationUsingKeyFrames>
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetProperty="(UIElement.RenderTransform).(RotateTransform.Angle)" Storyboard.TargetName="ExpanderButton">
<EasingDoubleKeyFrame KeyTime="00:00:00.2" Value="180"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
<VisualState x:Name="Collapsed">
<Storyboard>
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetProperty="(UIElement.RenderTransform).(RotateTransform.Angle)" Storyboard.TargetName="ExpanderButton">
<EasingDoubleKeyFrame KeyTime="00:00:00.2" Value="0"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Border x:Name="Content" Grid.ColumnSpan="5" Grid.Column="2" Grid.Row="1">
<StackPanel VirtualizingStackPanel.VirtualizationMode="Recycling">
<Border x:Name="ToggleButtonBorder" Background="{TemplateBinding Background}" Grid.ColumnSpan="2" Grid.Column="2" MinHeight="{TemplateBinding MinHeight}" GridView:SelectiveScrollingGrid.SelectiveScrollingClip="True">
<Grid>
<GridView:GridViewGroupFooterRow x:Name="Footer" telerik:StyleManager.Theme="{StaticResource BaseTheme}" />
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="25"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<!--<Border Grid.Column="2" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" GridView:SelectiveScrollingGrid.SelectiveScrollingClip="True" Visibility="{Binding ShowHeaderAggregates, Converter={StaticResource BooleanToVisibilityConverter}, RelativeSource={RelativeSource TemplatedParent}}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" />-->
<Border x:Name="IconOuterBorder" BorderBrush="{StaticResource ControlOuterBorder}" BorderThickness="0,0,0,1" Background="Transparent" HorizontalAlignment="Stretch" GridView:SelectiveScrollingGrid.SelectiveScrollingOrientation="Vertical">
<Border x:Name="IconInnerBorder" BorderBrush="{StaticResource ControlInnerBorder}" BorderThickness="1,1,0,1">
<Path x:Name="ExpanderButton" Grid.Column="0" Data="M0,0L1,0 2,0 2,0.99999991 3,0.99999991 3,2 4,2 4,0.99999991 5,0.99999991 5,0 5.9999999,0 7,0 7,0.99999991 5.9999999,0.99999991 5.9999999,2 5,2 5,3 4,3 4,4 3,4 3,3 2,3 2,2 1,2 1,0.99999991 0,0.99999991z" Fill="{StaticResource GridView_GroupRowIndicator}" HorizontalAlignment="Left" Height="5" Margin="{TemplateBinding Padding}" RenderTransformOrigin="0.5,0.5" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Width="7">
<Path.RenderTransform>
<RotateTransform/>
</Path.RenderTransform>
</Path>
</Border>
</Border>
<ToggleButton x:Name="HeaderButton" Background="Transparent" Grid.ColumnSpan="3" Grid.Column="0" IsTabStop="{TemplateBinding IsTabStop}" IsChecked="{Binding IsExpanded, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" Opacity="0" GridView:SelectiveScrollingGrid.SelectiveScrollingOrientation="Vertical"/>
<ToggleButton MinWidth="75" BorderBrush="{x:Null}" BorderThickness="0" Foreground="White" Grid.Column="1" IsTabStop="{TemplateBinding IsTabStop}" IsChecked="{Binding IsExpanded, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" Padding="0,0,10,0" Style="{StaticResource GridViewGroupToggleButtonStyle}" GridView:SelectiveScrollingGrid.SelectiveScrollingOrientation="Vertical">
<ToggleButton.Background>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FFD3213B"/>
<GradientStop Color="#FF706F70" Offset="1"/>
<GradientStop Color="#FF040404" Offset="0.252"/>
</LinearGradientBrush>
</ToggleButton.Background>
<ContentPresenter ContentTemplate="{TemplateBinding GroupHeaderTemplate}" Content="{TemplateBinding GroupViewModel}" Grid.Column="1" Margin="0,0,10,0" VerticalAlignment="Center"/>
</ToggleButton>
<Border BorderBrush="{StaticResource ControlOuterBorder}" BorderThickness="0,0,0,1" Grid.ColumnSpan="2" Grid.Column="1" GridView:SelectiveScrollingGrid.SelectiveScrollingClip="True">
<Border BorderBrush="{StaticResource ControlInnerBorder}" BorderThickness="0,1,1,1"/>
</Border>
<Border BorderBrush="{StaticResource ControlOuterBorder}" BorderThickness="0,0,0,1" Grid.ColumnSpan="3" Grid.Column="0" GridView:SelectiveScrollingGrid.SelectiveScrollingClip="True">
<Border BorderBrush="{StaticResource ControlInnerBorder}" BorderThickness="0,1,1,1"/>
</Border>
</Grid>
</Grid>
</Border>
<Grid x:Name="CollapseGrid" Grid.ColumnSpan="5" Grid.Column="0" Grid.Row="1" Visibility="Collapsed">
<GridView:GridViewVirtualizingPanel x:Name="PART_GridViewVirtualizingPanel"/>
</Grid>
</StackPanel>
</Border>
<Border x:Name="PART_IndicatorPresenter" BorderBrush="{StaticResource ControlOuterBorder}" BorderThickness="0,0,1,1" Grid.Column="0" GridView:SelectiveScrollingGrid.SelectiveScrollingOrientation="Vertical" Visibility="{TemplateBinding RowIndicatorVisibility}" VerticalAlignment="Stretch" Width="25">
<Border BorderBrush="{StaticResource ControlInnerBorder}" BorderThickness="1" Background="{StaticResource GridView_RowIndicatorCellBackground}"/>
</Border>
<GridView:IndentPresenter Background="{TemplateBinding Background}" Grid.Column="1" IndentLevel="{TemplateBinding Level}" GridView:SelectiveScrollingGrid.SelectiveScrollingOrientation="Vertical" telerik:StyleManager.Theme="{StaticResource BaseTheme}"/>
<Border x:Name="BottomBorder" BorderBrush="{StaticResource ControlOuterBorder}" BorderThickness="0,0,0,1" Grid.Column="2" Grid.Row="1" Visibility="Collapsed" VerticalAlignment="Bottom"/>
</Grid>
</ControlTemplate>
</ResourceDictionary>
Is there a bug with the GroupRowFooter that it displays the wrong value if displayed as the header?