GroupStyle.AlternationCount Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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:
Legt auf 2 fest AlternationCount .
Erstellt einAlternationConverter, das einen zurückgibt, der vom Wert von ItemsControl.AlternationIndexzurückgibtSolidColorBrush.
Bindet das Background von TextBlock in an HeaderTemplate die ItemsControl.AlternationIndex -Eigenschaft und stellt die AlternationConverterbereit. Beachten Sie, dass die AlternationIndex angefügte Eigenschaft für GroupItemfestgelegt ist und die Bindung verwendet FindAncestor , um ihren Wert abzurufen.
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.