Linguaggio

ItemsControl.AlternationIndex Proprietà associata

Definizione

Ottiene il valore assegnato del contenitore di elementi quando vengono utilizzati contenitori di elementi alternati.

see GetAlternationIndex, and SetAlternationIndex
see GetAlternationIndex
see GetAlternationIndex, and SetAlternationIndex
see GetAlternationIndex
see GetAlternationIndex, and SetAlternationIndex
see GetAlternationIndex

Esempio

Nell'esempio seguente viene specificato che ( ListBox che eredita da ItemsControl) include contenitori di elementi alternati (di tipo ListBoxItem) e specifica uno sfondo e un primo piano diversi per ognuno di essi. Nell'esempio vengono associate le Background proprietà e Foreground a ItemsControl.AlternationIndex e viene fornito un oggetto AlternationConverter 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 operazione dell'esempio precedente utilizzando 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 oggetto ItemsControl. 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 vengono elencati per ItemsControl.AlternationIndex 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 alternati. Un metodo consiste nell'associare le proprietà del contenitore items a 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 i trigger per modificare il valore della proprietà di un contenitore di elementi a seconda del valore del relativo ItemsControl.AlternationIndex.

Si applica a