HierarchicalDataTemplate.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 der abwechselnden Elementcontainer für die untergeordneten Elemente 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 der abwechselnden Elementcontainer für die nächste Ebene von Elementen.
Beispiele
Im folgenden Beispiel wird ein TreeView erstellt, das an Daten gebunden ist, die drei Ebenen tief sind, und jedes Element wird in einem TextBlockangezeigt. Die TextBlock Objekte in der ersten Ebene haben die gleichen Eigenschaftswerte, die TextBlock Objekte in der zweiten Ebene verwenden abwechselnde Werte für die FontStyle Eigenschaft, und die TextBlock Objekte in der dritten Ebene verwenden abwechselnde Werte für die Background Eigenschaft.
Da für die HierarchicalDataTemplate erste Ebene, Level1Data
, die AlternationCount -Eigenschaft auf 2 festgelegt ist, wechselt der ItemsControl.AlternationIndex für die TreeViewItem Objekte in der zweiten Ebene zwischen 0 und 1. In der HierarchicalDataTemplate für die zweite Ebene Level2Data
ist die FontStyle der TextBlock an die ItemsControl.AlternationIndex gebunden, und ein AlternationConverter wird bereitgestellt, um die ItemsControl.AlternationIndex in ein alternierendes FontStylezu konvertieren. Eine ähnliche Beziehung besteht zwischen Level2Data
und : Die AlternationCount ist auf 3 für Level2Data
festgelegt, und die TextBlock in Level3Ddata
hat seine Background -Eigenschaft an den ItemsControl.AlternationIndexgebunden.Level3Data
<StackPanel>
<StackPanel.Resources>
<!--Returns alternating brushes.-->
<AlternationConverter x:Key="TeamsBackgroundConverter">
<SolidColorBrush>LimeGreen</SolidColorBrush>
<SolidColorBrush>SpringGreen</SolidColorBrush>
<SolidColorBrush>Chartreuse</SolidColorBrush>
</AlternationConverter>
<!--The DataTemplate used by TreeViewItems in the third level
of the TreeView.-->
<DataTemplate x:Key="Level3Data">
<TextBlock Text="{Binding Path=Name}"
Background="{Binding RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type TreeViewItem}},
Path=(ItemsControl.AlternationIndex),
Converter={StaticResource TeamsBackgroundConverter}}"/>
</DataTemplate>
<!--Returns altnernating FontStyles.-->
<AlternationConverter x:Key="LeagueFontStyleConverter">
<FontStyle >Italic</FontStyle>
<FontStyle >Normal</FontStyle>
</AlternationConverter>
<!--The HierarchicalDataTemplate used by TreeViewItems
in the second level of the TreeView.-->
<HierarchicalDataTemplate x:Key="Level2Data"
ItemsSource="{Binding Path=Teams}"
ItemTemplate="{StaticResource Level3Data}"
AlternationCount="3">
<TextBlock Text="{Binding Path=Name}"
FontStyle="{Binding RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type TreeViewItem}},
Path=(ItemsControl.AlternationIndex),
Converter={StaticResource LeagueFontStyleConverter}}"/>
</HierarchicalDataTemplate>
<!--The HierarchicalDataTemplate used by TreeViewItems
in the first level of the TreeView.-->
<HierarchicalDataTemplate x:Key="Level1Data"
ItemsSource="{Binding Path=Divisions}"
ItemTemplate="{StaticResource Level2Data}"
AlternationCount="2">
<TextBlock Text="{Binding Path=Name}" FontWeight="Bold"/>
</HierarchicalDataTemplate>
<Style TargetType="TreeViewItem">
<Setter Property="IsExpanded" Value="True"/>
</Style>
</StackPanel.Resources>
<TreeView ItemsSource="{Binding Source={StaticResource MyTreeViewData}}"
ItemTemplate="{StaticResource Level1Data}"/>
</StackPanel>
Hinweise
Mit AlternationCount den Eigenschaften und ItemsControl.AlternationIndex können Sie die Darstellung für zwei oder mehr container abwechselnde Elemente angeben. Beispielsweise können Sie für jedes dritte Element in einem ItemsControlabwechselnde Hintergrundfarben angeben. Wird ItemsControl.AlternationIndex jedem Elementcontainer im ItemsControlzugewiesen. ItemsControl.AlternationIndex beginnt bei 0, inkrementiert, bis es minus 1 ist AlternationCount , und startet dann bei 0 neu. Wenn z. B. AlternationCount 3 ist und sieben Elemente im enthalten ItemsControlsind, enthält die folgende Tabelle die ItemsControl.AlternationIndex für jedes Element.
Position des Elements im ItemsControl | ItemsControl.AlternationIndex |
---|---|
1 | 0 |
2 | 1 |
3 | 2 |
4 | 0 |
5 | 1 |
6 | 2 |
7 | 0 |
Wenn Sie die AlternationCount -Eigenschaft festlegen, geben Sie an, dass die untergeordneten Elemente einen ItemsControl.AlternationIndex in diesem Bereich erhalten sollen, nicht das Element, auf das dies HierarchicalDataTemplate angewendet wurde. Wenn z. B. ein aufgerufener mit dem AlternationCount Satz verwendet, verfügen die Elementcontainer der untergeordneten Elemente von über aHeaderedItemsControl
einen ItemsControl.AlternationIndex- und nicht über den Elementcontainer für aHeaderedItemsControl
.HierarchicalDataTemplateHeaderedItemsControlaHeaderedItemsControl
Es gibt mehrere Methoden, mit denen Sie unterschiedliche Darstellungen für die Container für abwechselnde Elemente angeben können. Eine Methode besteht darin, Eigenschaften des Elementcontainers an das ItemsControl.AlternationIndexzu binden. Anschließend können Sie einen AlternationConverter verwenden, um anzugeben, welcher Wert auf den Elementcontainer angewendet werden soll, der über einen bestimmten ItemsControl.AlternationIndex Wert verfügt. Sie können auch Trigger verwenden, um den Wert der -Eigenschaft eines Elementcontainers abhängig vom Wert seiner ItemsControl.AlternationIndexzu ändern.