ItemsControl.AlternationCount ItemsControl.AlternationCount ItemsControl.AlternationCount ItemsControl.AlternationCount Property

定義

代替コンテナーに独自の外観を与える 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 ItemsControl.AlternationIndex 、プロパティとプロパティをAlternationConverterにバインドし、各プロパティに対してを提供します。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>

注釈

プロパティとプロパティを使用するとItemsControl.AlternationIndex 、2つ以上の代替項目コンテナーの外観を指定できます。 AlternationCountThe AlternationCount and ItemsControl.AlternationIndex properties enable you to specify the appearance for two or more alternating item containers. たとえば、の3番目の項目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.AlternationIndex0から開始し、 AlternationCount 1 を引いた値を減算した後、0で再起動します。ItemsControl.AlternationIndex begins at 0, increments until it is AlternationCount minus 1, and then restarts at 0. たとえば、が 3 AlternationCountで、 ItemsControlに7つの項目がある場合、次の表に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. 1つの方法は、 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.

適用対象