ItemsControl.AlternationCount Eigenschaft

Definition

Ruft die Anzahl der Container für abwechselnde Elemente im ItemsControl-Objekt ab, oder legt diese fest. Dadurch können abwechselnde Container unterschiedlich dargestellt werden.Gets or sets the number of alternating item containers in the ItemsControl, which enables alternating containers to have a unique appearance.

public:
 property int AlternationCount { int get(); void set(int value); };
[System.ComponentModel.Bindable(true)]
public int AlternationCount { get; set; }
[<System.ComponentModel.Bindable(true)>]
member this.AlternationCount : int with get, set
Public Property AlternationCount As Integer

Eigenschaftswert

Int32

Die Anzahl der abwechselnden Elementcontainer im ItemsControl-Objekt.The number of alternating item containers in the ItemsControl.

Attribute

Beispiele

Im folgenden Beispiel wird angegeben, dass das ListBox (das von erbt ItemsControl ) abwechselnde Element Container (die vom Typ sind ListBoxItem ) hat und jeweils einen anderen Hintergrund und Vordergrund angibt.The following example specifies that the ListBox (which inherits from ItemsControl) has alternating item containers (which are of type ListBoxItem) and specifies a different background and foreground for each one. Im Beispiel werden die Background -Eigenschaft und die- Foreground Eigenschaft an die gebunden, ItemsControl.AlternationIndex und AlternationConverter für jede Eigenschaft wird ein bereitstellenThe example binds the Background and Foreground properties to the ItemsControl.AlternationIndex and provides an AlternationConverter for each property.

<Grid>
  <Grid.Resources>
    <AlternationConverter x:Key="BackgroundConverter">
      <SolidColorBrush>Blue</SolidColorBrush>
      <SolidColorBrush>CornflowerBlue</SolidColorBrush>
      <SolidColorBrush>LightBlue</SolidColorBrush>
    </AlternationConverter>

    <AlternationConverter x:Key="AlternateForegroundConverter">
      <SolidColorBrush>White</SolidColorBrush>
      <SolidColorBrush>Black</SolidColorBrush>
      <SolidColorBrush>Navy</SolidColorBrush>
    </AlternationConverter>

    <Style x:Key="alternatingWithBinding" TargetType="{x:Type ListBoxItem}">
      <Setter Property="Background" 
              Value="{Binding RelativeSource={RelativeSource Self},
                     Path=(ItemsControl.AlternationIndex),
                     Converter={StaticResource BackgroundConverter}}"/>

      <Setter Property="Foreground" 
              Value="{Binding RelativeSource={RelativeSource Self},
                     Path=(ItemsControl.AlternationIndex),
                     Converter={StaticResource AlternateForegroundConverter}}"/>
    </Style>

  </Grid.Resources>

  <ListBox AlternationCount="3" ItemsSource="{StaticResource data}"
           ItemContainerStyle="{StaticResource alternatingWithBinding}"/>
</Grid>

Im folgenden Beispiel wird das gleiche wie im vorherigen Beispiel mithilfe von-Objekten durchführt Trigger .The following example does the same as the previous example by using Trigger objects.

<Grid>
  <Grid.Resources>
    <Style x:Key="alternatingWithTriggers" TargetType="{x:Type ListBoxItem}">
      <Setter Property="Background" Value="Blue"/>
      <Setter Property="Foreground" Value="White"/>
      <Style.Triggers>
        <Trigger Property="ListBox.AlternationIndex" Value="1">
          <Setter Property="Background" Value="CornflowerBlue"/>
          <Setter Property="Foreground" Value="Black"/>
        </Trigger>
        <Trigger Property="ListBox.AlternationIndex" Value="2">
          <Setter Property="Background" Value="LightBlue"/>
          <Setter Property="Foreground" Value="Navy"/>
        </Trigger>
      </Style.Triggers>
    </Style>

  </Grid.Resources>
  <ListBox AlternationCount="3" ItemsSource="{StaticResource data}" 
           ItemContainerStyle="{StaticResource alternatingWithTriggers}">
  </ListBox>
</Grid>

Hinweise

AlternationCountMit der-Eigenschaft und der-Eigenschaft ItemsControl.AlternationIndex 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 abwechselnde Hintergrundfarbe angeben ItemsControl .For example, you can specify alternating background colors for every third item in an ItemsControl. Der ItemsControl.AlternationIndex wird jedem Element Container in zugewiesen ItemsControl .The ItemsControl.AlternationIndex is assigned to each item container in the ItemsControl. ItemsControl.AlternationIndex beginnt 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 beispielsweise den Wert AlternationCount 3 hat und sieben Elemente im vorhanden sind ItemsControl , wird in der folgenden Tabelle die ItemsControl.AlternationIndex 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 im ItemsControlPosition of Item in the ItemsControl ItemsControl.AlternationIndex
11 00
22 11
33 22
44 00
55 11
66 22
77 00

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 den zu binden ItemsControl.AlternationIndex .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 zu ändern ItemsControl.AlternationIndex .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: