ItemsControl.AlternationCount Свойство

Определение

Возвращает или задает количество чередующихся контейнеров элементов в объекте ItemsControl, который позволяет чередующимся контейнерам иметь уникальный внешний вид.Gets or sets the number of alternating item containers in the ItemsControl, which enables alternating containers to have a unique appearance.

public:
 property int AlternationCount { int get(); void set(int value); };
[System.ComponentModel.Bindable(true)]
public int AlternationCount { get; set; }
member this.AlternationCount : int with get, set
Public Property AlternationCount As Integer

Значение свойства

Количество чередующихся элементов контейнеров в объекте ItemsControl.The number of alternating item containers in the ItemsControl.

Атрибуты

Примеры

В следующем примере указывается, что ListBox объект (который наследует ItemsControlот) содержит чередующиеся контейнеры элементов (которые имеют ListBoxItemтип) и задает разные цвета фона и переднего плана для каждого из них.The following example specifies that the ListBox (which inherits from ItemsControl) has alternating item containers (which are of type ListBoxItem) and specifies a different background and foreground for each one. В этом примере Background свойства и Foreground привязываются AlternationConverter к ItemsControl.AlternationIndex и предоставляют для каждого свойства.The example binds the Background and Foreground properties to the ItemsControl.AlternationIndex and provides an AlternationConverter for each property.

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

Следующий пример делает то же, что и предыдущий пример, с Trigger помощью объектов.The following example does the same as the previous example by using Trigger objects.

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

Комментарии

Свойства AlternationCount иItemsControl.AlternationIndex позволяют задать внешний вид для двух или более чередующихся контейнеров элементов.The AlternationCount and ItemsControl.AlternationIndex properties enable you to specify the appearance for two or more alternating item containers. Например, можно указать чередующиеся цвета фона для каждого третьего элемента в ItemsControl.For example, you can specify alternating background colors for every third item in an ItemsControl. Присваивается каждому контейнеру элементов ItemsControlв. ItemsControl.AlternationIndexThe ItemsControl.AlternationIndex is assigned to each item container in the ItemsControl. ItemsControl.AlternationIndexначинается с 0, увеличивается до AlternationCount минус 1, а затем перезапускается в 0.ItemsControl.AlternationIndex begins at 0, increments until it is AlternationCount minus 1, and then restarts at 0. Например, если AlternationCount значение равно 3, а ItemsControlв таблице есть семь элементов, в приведенной ниже таблицы ItemsControl.AlternationIndex перечислены все элементы.For example, if AlternationCount is 3 and there are seven items in the ItemsControl, the following table lists the ItemsControl.AlternationIndex for each item.

Позиция элемента в элементеItemsControlPosition of Item in the ItemsControl ItemsControl.AlternationIndex
11 00
22 11
33 22
44 00
55 11
66 22
77 00

Существует несколько методов, которые можно использовать для указания различных внешнего вида для чередующихся контейнеров элементов.There are several methods you can use to specify different appearances for the alternating item containers. Одним из способов является привязка свойств контейнера Items к ItemsControl.AlternationIndex.One method is to bind properties of the items container to the ItemsControl.AlternationIndex. Затем можно использовать AlternationConverter , чтобы указать, какое значение должно применяться к контейнеру элемента, имеющему определенное ItemsControl.AlternationIndex значение.You can then use an AlternationConverter to specify which value should be applied to the item container that has a certain ItemsControl.AlternationIndex value. Кроме того, можно использовать триггеры для изменения значения свойства контейнера элемента в зависимости от его ItemsControl.AlternationIndexзначения.You can also use triggers to change the value of an item container's property depending on the value of its ItemsControl.AlternationIndex.

Применяется к