Ich habe ein Datagrid an ein ListCollectionView gebunden. Darüber habe ich meine Daten gruppiert.
Das sieht aktuell so aus:
Allerdings würde ich es gerne so umgestalten, dass es so aussieht:
Ich würde also gerne im Header der Gruppe die Informationen der Childobjekte zusammenfassen (z.B Addieren oder den Durchschnitt berechnen)
Weiß irgendjemand wie man das macht? Ich muss ja irgendwie über eine Datenbindung an die Informationen der Childobjekte kommen.
XAML-Code
(Ich habe zwei Controltemplates, weil ich keinen Expander haben möchte, wenn in der Gruppe nur ein Element ist)
Das sieht aktuell so aus:
Allerdings würde ich es gerne so umgestalten, dass es so aussieht:
Ich würde also gerne im Header der Gruppe die Informationen der Childobjekte zusammenfassen (z.B Addieren oder den Durchschnitt berechnen)
Weiß irgendjemand wie man das macht? Ich muss ja irgendwie über eine Datenbindung an die Informationen der Childobjekte kommen.
XML-Quellcode
- <ControlTemplate TargetType="{x:Type GroupItem}" x:Key="withExpander">
- <Border BorderThickness="1" BorderBrush="Black">
- <Expander IsExpanded="True">
- <Expander.Header>
- <StackPanel Orientation="Horizontal">
- <TextBlock Text="{Binding Path=Asin}" />
- <TextBlock Text="{Binding Path=ItemCount}"/>
- <TextBlock Text=" Items"/>
- </StackPanel>
- </Expander.Header>
- <ItemsPresenter />
- </Expander>
- </Border>
- </ControlTemplate>
- <ControlTemplate TargetType="{x:Type GroupItem}" x:Key="withOutExpander">
- <ItemsPresenter />
- </ControlTemplate>
- <!-- ... -->
- <DockPanel Grid.Row="1">
- <DataGrid x:Name="dataGrid" ItemsSource="{Binding Items}" IsReadOnly="True">
- <DataGrid.GroupStyle>
- <GroupStyle>
- <GroupStyle.HeaderTemplate>
- <DataTemplate>
- <StackPanel>
- <TextBlock Text="{Binding Path=Asin}" />
- </StackPanel>
- </DataTemplate>
- </GroupStyle.HeaderTemplate>
- <GroupStyle.ContainerStyle>
- <Style TargetType="{x:Type GroupItem}">
- <Setter Property="Template" Value="{StaticResource withExpander}" />
- <Style.Triggers>
- <DataTrigger Binding="{Binding Converter={StaticResource groupSizeToExpanderConverter}}" Value="False">
- <Setter Property="Template" Value="{StaticResource withOutExpander}"/>
- </DataTrigger>
- </Style.Triggers>
- </Style>
- </GroupStyle.ContainerStyle>
- </GroupStyle>
- </DataGrid.GroupStyle>
- </DataGrid>
- </DockPanel>
(Ich habe zwei Controltemplates, weil ich keinen Expander haben möchte, wenn in der Gruppe nur ein Element ist)