HierarchicalDataTemplate.AlternationCount HierarchicalDataTemplate.AlternationCount HierarchicalDataTemplate.AlternationCount HierarchicalDataTemplate.AlternationCount Property

Definition

Ruft die Anzahl der abwechselnden Elementcontainer für die untergeordneten Elemente ab oder legt diese fest.Gets or sets the number of alternating item containers for the child items.

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.The number of alternating item containers for the next level of items.

Beispiele

Im folgenden Beispiel wird ein TreeView -Objekt erstellt, das an Daten gebunden ist, die drei Ebenen tief sind, und jedes TextBlockElement wird in einem angezeigt.The following example creates a TreeView that is bound to data that is three levels deep, and each item is displayed in a TextBlock. Die TextBlock Objekte in der ersten Ebene verfügen über dieselben Eigenschaftswerte, TextBlock die Objekte auf der zweiten Ebene verwenden abwechselnde Werte FontStyle für die-Eigenschaft TextBlock , und die Objekte auf der dritten Ebene verwenden abwechselnde Werte für das Background -Eigenschaft.The TextBlock objects in the first level have the same property values, the TextBlock objects in the second level use alternating values for the FontStyle property, and the TextBlock objects in the third level use alternating values for the Background property.

AlternationCount ItemsControl.AlternationIndex TreeViewItem Da für die erste Ebene, Level1Data, die-Eigenschaft auf 2 festgelegt ist, wird die-Eigenschaft für die-Objekte in der zweiten Ebene zwischen 0 und 1 geändert. HierarchicalDataTemplateBecause the HierarchicalDataTemplate for the first level, Level1Data, has the AlternationCount property set to 2, the ItemsControl.AlternationIndex for the TreeViewItem objects in the second level alternates between 0 and 1. In der HierarchicalDataTemplate für die zweite Level2DataEbene,, TextBlock wird FontStyle der der an den ItemsControl.AlternationIndex gebunden, und es AlternationConverter wird eine bereitgestellt, ItemsControl.AlternationIndex um den in FontStyleeine abwechselnde zu konvertieren.In the HierarchicalDataTemplate for the second level, Level2Data, the FontStyle of the TextBlock is bound to the ItemsControl.AlternationIndex and an AlternationConverter is provided to convert the ItemsControl.AlternationIndex to an alternating FontStyle. Zwischen Level2Data undLevel3Databesteht eine ähnliche Beziehung: Der AlternationCount wird auf Level2Data3 festgelegt, TextBlock Level3Ddata ItemsControl.AlternationIndexund die- Eigenschaftinistandiegebunden.BackgroundA similar relationship exists between Level2Data and Level3Data: The AlternationCount is set to 3 on Level2Data, and the TextBlock in Level3Ddata has its Background property bound to the ItemsControl.AlternationIndex.

<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 der ItemsControl.AlternationIndex -Eigenschaft und der-Eigenschaft können Sie die Darstellung für mindestens zwei abwechselnde Element Container angeben.The AlternationCount and ItemsControl.AlternationIndex properties enable you to specify the appearance for two or more alternating item containers. Sie können z. b. für jedes dritte Element in eine ItemsControlabwechselnde Hintergrundfarbe angeben.For example, you can specify alternating background colors for every third item in an ItemsControl. Der ItemsControl.AlternationIndex wird jedem Element Container ItemsControlin zugewiesen.The ItemsControl.AlternationIndex is assigned to each item container in the ItemsControl. ItemsControl.AlternationIndexbeginnt bei 0, erhöht sich, bis es AlternationCount minus 1 ist, und startet dann bei 0 neu.ItemsControl.AlternationIndex begins at 0, increments until it is AlternationCount minus 1, and then restarts at 0. Wenn AlternationCount beispielsweise den Wert 3 hat und sieben Elemente ItemsControlim vorhanden sind, wird in der folgenden Tabelle ItemsControl.AlternationIndex die für jedes Element aufgelistet.For example, if AlternationCount is 3 and there are seven items in the ItemsControl, the following table lists the ItemsControl.AlternationIndex for each item.

Position des Elements imItemsControlPosition of Item in the ItemsControl ItemsControl.AlternationIndex
11 00
22 11
33 22
44 00
55 11
66 22
77 00

Wenn Sie die AlternationCount -Eigenschaft festlegen, weisen Sie darauf hin, dass die untergeordneten ItemsControl.AlternationIndex Elemente einen in diesem Bereich erhalten sollen, nicht das HierarchicalDataTemplate Element, auf das diese angewendet wurde.When you set the AlternationCount property, you are indicating that the child items should get an ItemsControl.AlternationIndex in that range, not the item that has this HierarchicalDataTemplate applied to it. HeaderedItemsControl Wenn z. b. ein aHeaderedItemsControl aufgerufener HierarchicalDataTemplate mit AlternationCount dem Satz verwendet, verfügen ItemsControl.AlternationIndexdie Element Container der unter aHeaderedItemsControl geordneten Elemente von über, nicht über den Element aHeaderedItemsControlContainer für.For example, if a HeaderedItemsControl called aHeaderedItemsControl uses a HierarchicalDataTemplate with the AlternationCount set, the item containers of the child items of aHeaderedItemsControl will have an ItemsControl.AlternationIndex, not the item container for aHeaderedItemsControl.

Es gibt mehrere Methoden, die Sie verwenden können, um unterschiedliche Darstellungen für die abwechselnden Element Container anzugeben.There are several methods you can use to specify different appearances for the alternating item containers. Eine Methode besteht darin, die Eigenschaften des Items-Containers an ItemsControl.AlternationIndexden zu binden.One method is to bind properties of the items container to the ItemsControl.AlternationIndex. Anschließend können Sie mit einem AlternationConverter angeben, welcher Wert auf den Element Container angewendet werden soll, der einen bestimmten ItemsControl.AlternationIndex Wert aufweist.You can then use an AlternationConverter to specify which value should be applied to the item container that has a certain ItemsControl.AlternationIndex value. Sie können auch Trigger verwenden, um den Wert der-Eigenschaft eines Element Containers abhängig vom Wert seiner ItemsControl.AlternationIndexzu ändern.You can also use triggers to change the value of an item container's property depending on the value of its ItemsControl.AlternationIndex.

Gilt für: