2017-11-22 1 views
0

Eine Seite zeigt verschiedene Bestellnummern an, die jeweils mehrere Positionen enthalten. Sie müssen den Betrag zusammenfassen und im Gruppenkopf anzeigen. Hilfe zur Anzeige des Gesamtbetrags für jede Bestellnummer.Wpf zeigt einen anderen Eintrag für die Gruppierung an. Header

Das Feld TotalAmount wird nicht zusammen mit dem Gruppenkopfnamen angezeigt, der die Bestellnummer darstellt.

<abcd:DetailsListView x:Name="EncumbranceEntriesList" Grid.Row="1" 
      ItemsSource="{Binding CurrentEncumbranceJournalEntries}" 
      SelectionMode="Extended" ShowGroupItemCount="True" 
      IsSortingEnabled="False" 
      ahtd:ListBoxExtensions.HasBindableSelectedItems="True"> 
<i:Interaction.Behaviors> 
       <b:DetailsListViewStatePersistenceBehavior 
        ListViewState="{e:UISettingBinding EncumbranceJournalTabListViewState}"/> 
      </i:Interaction.Behaviors> 
      <ListView.ContextMenu> 
       <ContextMenu> 
        <ContextMenu.Resources> 
         <Style TargetType="{x:Type Image}" BasedOn="{StaticResource CommandIconStyle}"/> 
        </ContextMenu.Resources> 
        <MenuItem Header="_Refresh" InputGestureText="F5" 
         Command="{StaticResource RefreshCommand}"> 
         <MenuItem.Icon> 
          <Image Source="{DynamicResource {local:ThemeResourceKey IconRefresh}}"/> 
         </MenuItem.Icon> 
        </MenuItem> 
       </ContextMenu> 
      </ListView.ContextMenu> 
      <ListView.ItemContainerStyle> 
       <Style TargetType="{x:Type ListViewItem}"> 
        <Setter Property="HorizontalContentAlignment" Value="Stretch"/> 
        <EventSetter Event="MouseDoubleClick" Handler="ListViewItem_MouseDoubleClick"/> 
        <Setter Property="ContextMenu"> 
         <Setter.Value> 
          <ContextMenu> 
           <ContextMenu.Resources> 
            <Style TargetType="{x:Type Image}" BasedOn="{StaticResource CommandIconStyle}"/> 
           </ContextMenu.Resources> 
           <MenuItem Header="_Open Purchase Order" Command="{StaticResource OpenPOCommand}" CommandParameter="{Binding PurchaseOrderDetail.PurchaseOrder}"> 
            <MenuItem.Icon> 
             <Image Source="{DynamicResource {local:ThemeResourceKey IconOpen}}"/> 
            </MenuItem.Icon> 
           </MenuItem> 
          </ContextMenu> 
         </Setter.Value> 
        </Setter> 
       </Style> 
      </ListView.ItemContainerStyle> 
      <ListView.View> 
       <abcd:DetailsView> 
        <abcd:DetailsViewColumn Header="PO #" Width="140" 
         IsInitiallyVisible="False" IsUserHidable="False" 
         DisplayMemberBinding="{Binding PurchaseOrderDetail.PurchaseOrder.DisplayNumber}" 
         SortPropertyName="PurchaseOrderDetail.PurchaseOrder.DisplayNumber" 
         GroupPropertyName="PurchaseOrderDetail.PurchaseOrder.DisplayNumber"/> 
        <abcd:DetailsViewColumn Header="Line Item" Width="200" 
         DisplayMemberBinding="{Binding PurchaseOrderDetail.ShortItemDescription}"/> 
        <abcd:DetailsViewColumn Header="Date" Width="80" 
         DisplayMemberBinding="{Binding EntryDate, StringFormat=\{0:d\}}" 
         SortPropertyName="EntryDate" DefaultSortDirection="Descending"/> 
        <abcd:DetailsViewColumn Header="Encumbrance" Width="100" 
         SortPropertyName="Amount"> 
         <abcd:DetailsViewColumn.CellTemplate> 
          <DataTemplate> 
           <TextBlock Text="{Binding EncumbranceAmount, StringFormat={}{0:C}}" 
            TextAlignment="Right"/> 
          </DataTemplate> 
         </abcd:DetailsViewColumn.CellTemplate> 
        </abcd:DetailsViewColumn> 
        <abcd:DetailsViewColumn Header="Liquidation" Width="100" 
         SortPropertyName="Amount"> 
         <abcd:DetailsViewColumn.CellTemplate> 
          <DataTemplate> 
           <TextBlock Text="{Binding LiquidationAmount, StringFormat={}{0:C}}" 
            TextAlignment="Right"/> 
          </DataTemplate> 
         </abcd:DetailsViewColumn.CellTemplate> 
        </abcd:DetailsViewColumn>          
       </abcd:DetailsView> 
      </ListView.View> 
      <ListView.GroupStyle> 
       <GroupStyle> 
        <GroupStyle.ContainerStyle> 
         <Style TargetType="{x:Type GroupItem}"> 
        <Setter Property="Template"> 
         <Setter.Value> 
            <ControlTemplate TargetType="{x:Type GroupItem}"> 
           <Expander IsExpanded="True"> 
            <Expander.Header> 
             <StackPanel Orientation="Horizontal">               
              <TextBlock Text=" {Binding TotalAmount, StringFormat={}{0:C}}" FontSize="22" Foreground="Black" FontStyle="Italic" VerticalAlignment="Bottom" /> 
             </StackPanel> 
            </Expander.Header> 
            <ItemsPresenter /> 
           </Expander> 
          </ControlTemplate> 
         </Setter.Value> 
        </Setter> 
       </Style> 
        </GroupStyle.ContainerStyle> 
       </GroupStyle> 
      </ListView.GroupStyle> 

     </abcd:DetailsListView> 
    </Grid> 
</etk:BusyIndicator> 

-Code ist hinter

private void AutoSortList() 
    { 
     ICollectionView dataView = CollectionViewSource.GetDefaultView(EncumbranceEntriesList.ItemsSource); 

     if (dataView != null && dataView.SortDescriptions.Count == 0) 
     { 
      dataView.SortDescriptions.Add(new SortDescription("PurchaseOrderDetail.PurchaseOrder.DisplayNumber", ListSortDirection.Ascending)); 
      dataView.SortDescriptions.Add(new SortDescription("PurchaseOrderDetail.TransactionDate", ListSortDirection.Ascending)); 
      dataView.SortDescriptions.Add(new SortDescription("EntryDate", ListSortDirection.Ascending)); 

      EncumbranceEntriesList.Group("PurchaseOrderDetail.PurchaseOrder.DisplayNumber"); 

     } 
    } 

Antwort

0

In einer Group Sie auch die Header, die Sie "Name" & "ItemCount" gibt. Diese entsprechen jeweils dem Namen der Gruppe und der Anzahl der darin enthaltenen Elemente.

<ListView.GroupStyle> 
    <GroupStyle> 
     <GroupStyle.HeaderTemplate> 
      <DataTemplate> 
       <TextBlock> 
        <TextBlock.Text> 
         <MultiBinding StringFormat="{}{0} ({1})"> 
          <Binding Path="Name" /> 
          <Binding Path="ItemCount" /> 
         </MultiBinding> 
       </TextBlock.Text> 
      </TextBlock> 
     </DataTemplate> 
    </GroupStyle.HeaderTemplate> 
+0

Vielen Dank, der Name und die itemcount Anzeige ist bereits ... mit dem ShowGroupItemCount = „True“ .... was ich brauche, ist die Gesamtmenge an jeder Position in der Gruppe zu erhalten – newbee

Verwandte Themen