WPF DataGrid Gruppierung mit Summen-und anderen Bereichen
Ich habe ein DataGrid gebunden, die Sammlung und das möchte ich gruppiert werden. Hier ist der code
Sammlung:
private string _ID;
private string _Descript;
private decimal _Amount;
public string ID
{
get { return _ID; }
set { _ID = value; NotifyPropertyChanged("ID"); }
}
public decimal Amount
{
get { return _Amount; }
set { _Amount = value; NotifyPropertyChanged("Amount"); }
}
public string Descript
{
get { return _Descript; }
set { _Descript = value; NotifyPropertyChanged("Descript"); }
}
C#;
ListCollectionView groupcollection = new ListCollectionView(myCollection);
groupcollection.GroupDescriptions.Add(new PropertyGroupDescription("ID"));
myDataGrid.ItemsSource = groupcollection;
XAML:
<DataGrid Name="myDataGrid">
<DataGrid.GroupStyle>
<GroupStyle>
<GroupStyle.HeaderTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Path=Name}" />
</StackPanel>
</DataTemplate>
</GroupStyle.HeaderTemplate>
<GroupStyle.ContainerStyle>
<Style TargetType="{x:Type GroupItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type GroupItem}">
<Expander>
<Expander.Header>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Path=Name}" Margin="5"/>
<TextBlock Text="Count" Margin="5" />
<TextBlock Text="{Binding Path=ItemCount}" Margin="5"/>
</StackPanel>
</Expander.Header>
<ItemsPresenter />
</Expander>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</GroupStyle.ContainerStyle>
</GroupStyle>
</DataGrid.GroupStyle>
Diese perfekt funktioniert, aber jetzt in der Expander.Header
möchte ich Hinzugefügt, eine Zusammenfassung von einer "Menge" und "Descript" - Wert. So zum Beispiel, wenn es 3 Einträge in der collection mit der ID "ABC" jeweils einen 20 und die Beschreibung für ABC-seins "Mein Graf" ich würde sehen wollen;
ABC My Count total 60
Wie soll ich das tun?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnten Sie einen Konverter verwenden, die ' s übergeben der Items-Eigenschaft des group-header z.B.
wo der Konverter führt die Berechnung und übergibt die Gesamtsumme zurück, als der string für die text-block:
Als für die Beschreibung, ich würde auch vorschlagen, eine Gruppierung, die, und schreiben einen anderen Konverter zu ziehen, die Beschreibung dieser Elemente, die sich in einer ähnlichen Weise zu der oben.