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.

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.

Attribute

Beispiele

Im folgenden Beispiel wird angegeben, dass der ListBox (von ) geerbte ItemsControl(erbte) wechselige Elementcontainer (die vom Typ ListBoxItemsind) verfügt und für jeden einen anderen Hintergrund und Vordergrund angibt. Im Beispiel werden die und Foreground die Eigenschaften an die ItemsControl.AlternationIndex Background einzelnen Eigenschaften gebunden und für AlternationConverter jede Eigenschaft bereitgestellt.

<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 dasselbe wie im vorherigen Beispiel mithilfe Trigger von Objekten ausgeführt.

<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

ItemsControl.AlternationIndex Mit AlternationCount den Eigenschaften können Sie die Darstellung für zwei oder mehr alternierende Elementcontainer angeben. Sie können z. B. für jedes dritte Element in einem ItemsControlAnderen hintergrundfarben angeben. Dies ItemsControl.AlternationIndex wird jedem Elementcontainer im .ItemsControl ItemsControl.AlternationIndex beginnt bei 0, wächst, bis es minus 1 ist AlternationCount , und startet dann bei 0 neu. Wenn AlternationCount es z. B. 3 ist und sieben Elemente in der ItemsControlfolgenden Tabelle enthalten sind, werden für jedes Element die ItemsControl.AlternationIndex folgenden Tabellen aufgelistet.

Position des Elements 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 wechselseitigen Elementcontainer angeben können. Eine Methode besteht darin, Eigenschaften des Elementcontainers an den ItemsControl.AlternationIndex. Sie können dann einen AlternationConverter Wert verwenden, um anzugeben, welchen Wert auf den Elementcontainer angewendet werden soll, der einen bestimmten ItemsControl.AlternationIndex Wert aufweist. Sie können auch Trigger verwenden, um den Wert der Eigenschaft eines Elementcontainers abhängig vom Wert des ItemsControl.AlternationIndexElements zu ändern.

Gilt für