Sdílet prostřednictvím


ItemsControl.AlternationCount Vlastnost

Definice

Získá nebo nastaví počet střídavých kontejnerů položek v objektu ItemsControl, což umožňuje střídavým kontejnerům mít jedinečný vzhled.

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

Hodnota vlastnosti

Int32

Počet střídavých kontejnerů položek v souboru ItemsControl.

Atributy

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