ItemsControl.AlternationCount Właściwość

Definicja

Pobiera lub ustawia liczbę kontenerów elementów przemiennych w elemencie ItemsControl, co umożliwia przełączanie kontenerów w unikatowy wygląd.

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

Wartość właściwości

Int32

Liczba przemiennych kontenerów elementów w elemencie ItemsControl.

Atrybuty

Przykłady

Poniższy przykład określa, że ListBox (który dziedziczy z ItemsControl) ma naprzemienne kontenery elementów (które są typu ListBoxItem) i określa inne tło i pierwszy plan dla każdego z nich. Przykład wiąże Background właściwości i Foreground z ItemsControl.AlternationIndex właściwościami AlternationConverter i i udostępnia dla każdej właściwości.

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

Poniższy przykład wykonuje to samo, co w poprzednim przykładzie przy użyciu Trigger obiektów.

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

Uwagi

Właściwości AlternationCount i ItemsControl.AlternationIndex umożliwiają określenie wyglądu co najmniej dwóch kontenerów elementów przemiennych. Można na przykład określić naprzemienne kolory tła dla każdego trzeciego elementu w elemencie ItemsControl. Element ItemsControl.AlternationIndex jest przypisywany do każdego kontenera elementów w elemencie ItemsControl. ItemsControl.AlternationIndex zaczyna się od 0, zwiększa się do AlternationCount momentu minus 1, a następnie ponownie uruchamia się o 0. Jeśli na przykład AlternationCount wartość to 3, a w tabeli ItemsControlznajduje się siedem elementów, poniższa tabela zawiera listę ItemsControl.AlternationIndex dla każdego elementu.

Położenie elementu w elemencie ItemsControl ItemsControl.AlternationIndex
1 0
2 1
3 2
4 0
5 1
6 2
7 0

Istnieje kilka metod, których można użyć do określania różnych wyglądów kontenerów elementów przemiennych. Jedną z metod jest powiązanie właściwości kontenera elementów z kontenerem ItemsControl.AlternationIndex. Następnie można użyć polecenia , AlternationConverter aby określić, która wartość powinna być stosowana do kontenera elementów, który ma określoną ItemsControl.AlternationIndex wartość. Możesz również użyć wyzwalaczy, aby zmienić wartość właściwości kontenera elementu w zależności od wartości jej ItemsControl.AlternationIndex.

Dotyczy