ItemsControl.AlternationIndex Přidružená vlastnost

Definice

Získá přiřazenou hodnotu kontejneru položky při použití střídavých kontejnerů položek.

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

Příklady

Následující příklad určuje, že ListBox (který dědí z ItemsControl) má střídavě kontejnery položek (které jsou typu ListBoxItem) a určuje jiné pozadí a popředí pro každou z nich. Příklad vytvoří vazbu Background a vlastnosti na ItemsControl.AlternationIndex vlastnost Foreground a poskytuje AlternationConverter pro každou vlastnost.

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

Následující příklad se shoduje s předchozím příkladem pomocí Trigger objektů.

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

Poznámky

ItemsControl.AlternationIndex Vlastnosti AlternationCount umožňují určit vzhled dvou nebo více střídavých kontejnerů položek. Můžete například zadat střídavé barvy pozadí pro každou třetí položku v objektu ItemsControl. Je ItemsControl.AlternationIndex přiřazen ke každému kontejneru položek v objektu ItemsControl. ItemsControl.AlternationIndex začíná na 0, přírůstky, dokud není AlternationCount minus 1, a pak se restartuje na 0. Pokud je například AlternationCount 3 a v následující ItemsControltabulce je sedm položek, uvádí ItemsControl.AlternationIndex následující tabulka pro každou položku.

Pozice položky v ItemsControl ItemsControl.AlternationIndex
1 0
2 1
3 2
4 0
5 1
6 2
7 0

Existuje několik metod, které můžete použít k určení různých vzhledů pro kontejnery střídavých položek. Jednou z metod je vytvoření vazby vlastností kontejneru položek k objektu ItemsControl.AlternationIndex. Pak můžete použít AlternationConverter k určení hodnoty, kterou by se měla použít u kontejneru položky, který má určitou ItemsControl.AlternationIndex hodnotu. Aktivační události můžete také použít ke změně hodnoty vlastnosti kontejneru položky v závislosti na hodnotě jeho ItemsControl.AlternationIndex.

Platí pro