Freigeben über


GroupStyle.AlternationCount Eigenschaft

Definition

Ruft die Anzahl abwechselnder GroupItem-Objekte ab oder legt diese fest.

public:
 property int AlternationCount { int get(); void set(int value); };
public int AlternationCount { get; set; }
member this.AlternationCount : int with get, set
Public Property AlternationCount As Integer

Eigenschaftswert

Die Anzahl abwechselnder GroupItem-Objekte.

Beispiele

Im folgenden Beispiel wird ein ListBox erstellt, das an ein CollectionViewSource gebunden ist, das die Elemente in der Auflistung gruppiert. Im Beispiel wird der Hintergrund für die Kopfzeile der einzelnen GroupItem Farben wie folgt abgewechselt:

Das Beispiel wechselt auch den Hintergrund der Elemente in den ListBox zwischen drei Farben, indem festgelegt AlternationCount wird, ListBox dass und das Background von jedem ListBox an den ItemsControl.AlternationIndexgebunden wird. In diesem Fall wechselt der Hintergrund zwischen drei Farben.

Die CollectionViewSource , die die Elemente gruppiert, wird nicht angezeigt. Informationen zum Gruppieren von Elementen finden Sie unter Vorgehensweise: Sortieren und Gruppieren von Daten mithilfe einer Ansicht in XAML.

<StackPanel>

  <StackPanel.Resources>

    <!--Returns a Brush for the header of a GroupItem.-->
    <AlternationConverter x:Key="GroupHeaderBackgroundConverter">
      <SolidColorBrush>LightBlue</SolidColorBrush>
      <SolidColorBrush>LightSteelBlue</SolidColorBrush>
    </AlternationConverter>

    <!--Returns a Brush for a ListBoxItem.-->
    <AlternationConverter x:Key="BackgroundConverter">
      <SolidColorBrush>Silver</SolidColorBrush>
      <SolidColorBrush>LightGray</SolidColorBrush>
      <SolidColorBrush>GhostWhite</SolidColorBrush>
    </AlternationConverter>

  </StackPanel.Resources>

  <ListBox ItemsSource="{Binding Source={StaticResource groupedData}}"
           DisplayMemberPath="CityName" AlternationCount="3" Name="lb">

    <ListBox.GroupStyle>
      <!--Set alternating backgrounds on the header of each group.-->
      <GroupStyle AlternationCount="2">
        <GroupStyle.HeaderTemplate>
          <DataTemplate>
            <TextBlock FontWeight="Bold" 
                       Text="{Binding Path=Name}" 
                       Background="{Binding 
                           RelativeSource={RelativeSource FindAncestor, 
                           AncestorType={x:Type GroupItem}},
                           Path=(ItemsControl.AlternationIndex),
                           Converter={StaticResource 
                                      GroupHeaderBackgroundConverter}}"/>
          </DataTemplate>
        </GroupStyle.HeaderTemplate>
      </GroupStyle>
    </ListBox.GroupStyle>

    <ListBox.ItemContainerStyle>
      <!--Set alternating backgrounds on the items in the ListBox.-->
      <Style TargetType="{x:Type ListBoxItem}">
        <Setter Property="Background" 
                Value="{Binding RelativeSource={RelativeSource Self},
                     Path=(ItemsControl.AlternationIndex),
                     Converter={StaticResource BackgroundConverter}}"/>
      </Style>
    </ListBox.ItemContainerStyle>
  </ListBox>
</StackPanel>

Hinweise

Mit AlternationCount der Eigenschaft und der ItemsControl.AlternationIndex angefügten Eigenschaft können Sie die Darstellung für zwei oder mehr alternierende GroupItem Objekte angeben. Beispielsweise können Sie abwechselnde Hintergrundfarben für jede dritte GroupItem in einem ItemsControlangeben. Ist ItemsControl.AlternationIndex jedem GroupItem in ItemsControlzugewiesen. ItemsControl.AlternationIndex beginnt bei 0, inkrementiert, bis es minus 1 ist AlternationCount , und startet dann bei 0 neu. Wenn AlternationCount beispielsweise 3 ist und sieben GroupItem Objekte im vorhanden sind, werden in ItemsControlder folgenden Tabelle die ItemsControl.AlternationIndex für jedes Element aufgelistet.

Position von GroupItem im ItemsControl ItemsControl.AlternationIndex
1 0
2 1
3 2
4 0
5 1
6 2
7 0

Es gibt mehrere Methoden, mit denen Sie verschiedene Darstellungen für die wechselnden GroupItem Objekte angeben können. Eine Methode besteht darin, Eigenschaften im HeaderTemplate oder ContainerStyle des GroupStyle an das ItemsControl.AlternationIndexzu binden. Anschließend können Sie einen AlternationConverter verwenden, um anzugeben, welcher Wert auf den angewendet werden soll, der GroupItem einen bestimmten ItemsControl.AlternationIndex Wert aufweist. Sie können auch Trigger verwenden, um den Wert einer Eigenschaft abhängig vom Wert ihrer ItemsControl.AlternationIndexzu ändern.

Gilt für: