ItemsControl.AlternationCount Proprietà

Definizione

Ottiene o imposta il numero di contenitori di elementi alternativi in ItemsControl, che consente ai contenitori alternativi di avere un aspetto univoco.

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

Valore della proprietà

Int32

Numero di contenitori di elementi alternativi in ItemsControl.

Attributi

Esempio

Nell'esempio seguente viene specificato che l'oggetto ListBox (che eredita da ItemsControl) ha contenitori di elementi alternati (che sono di tipo ListBoxItem) e specifica uno sfondo e un primo piano diversi per ognuno di essi. L'esempio associa le Background proprietà e all'oggetto ItemsControl.AlternationIndex e Foreground fornisce un AlternationConverter oggetto per ogni proprietà.

<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>

Nell'esempio seguente viene eseguita la stessa dell'esempio precedente usando Trigger oggetti.

<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>

Commenti

Le AlternationCount proprietà e ItemsControl.AlternationIndex consentono di specificare l'aspetto per due o più contenitori di elementi alternati. Ad esempio, è possibile specificare colori di sfondo alternati per ogni terzo elemento in un ItemsControloggetto . L'oggetto ItemsControl.AlternationIndex viene assegnato a ogni contenitore di elementi nell'oggetto ItemsControl. ItemsControl.AlternationIndex inizia a 0, incrementa fino a quando non è AlternationCount meno 1 e quindi riavvia a 0. Ad esempio, se AlternationCount è 3 e sono presenti sette elementi nella ItemsControltabella seguente elenca gli ItemsControl.AlternationIndex elementi per ogni elemento.

Posizione dell'elemento nell'oggetto ItemsControl ItemsControl.AlternationIndex
1 0
2 1
3 2
4 0
5 1
6 2
7 0

Esistono diversi metodi che è possibile usare per specificare aspetti diversi per i contenitori di elementi alternativi. Un metodo consiste nell'associare le proprietà del contenitore elementi all'oggetto ItemsControl.AlternationIndex. È quindi possibile usare un AlternationConverter oggetto per specificare quale valore deve essere applicato al contenitore di elementi con un determinato ItemsControl.AlternationIndex valore. È anche possibile usare trigger per modificare il valore della proprietà di un contenitore di elementi a seconda del valore del relativo ItemsControl.AlternationIndex.

Si applica a