ItemsControl.AlternationCount Özellik

Tanım

içindeki değişen öğe kapsayıcılarının ItemsControlsayısını alır veya ayarlar. Bu, değişen kapsayıcıların benzersiz bir görünüme sahip olmasını sağlar.

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

Özellik Değeri

Int32

içindeki ItemsControldeğişen öğe kapsayıcılarının sayısı.

Öznitelikler

Örnekler

Aşağıdaki örnek , (öğesinden ItemsControldevralınan) değişen öğe kapsayıcılarına (türündeListBoxItem) sahip olduğunu ListBox belirtir ve her biri için farklı bir arka plan ve ön plan belirtir. Örnek, ve Foreground özelliklerini öğesine ItemsControl.AlternationIndex bağlar Background ve her özellik için bir AlternationConverter sağlar.

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

Aşağıdaki örnek, nesneleri kullanarak Trigger önceki örnekle aynı işlemi yapar.

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

Açıklamalar

ve ItemsControl.AlternationIndex özellikleri, AlternationCount iki veya daha fazla değişen öğe kapsayıcısının görünümünü belirtmenizi sağlar. Örneğin, içindeki ItemsControlher üçüncü öğe için alternatif arka plan renkleri belirtebilirsiniz. içindeki ItemsControl.AlternationIndex her öğe kapsayıcısına ItemsControlatanır. ItemsControl.AlternationIndex 0'da başlar, eksi 1 olana AlternationCount kadar artar ve sonra 0'da yeniden başlatılır. Örneğin, 3 ise AlternationCount ve içinde ItemsControlyedi öğe varsa, aşağıdaki tabloda her öğenin listesi ItemsControl.AlternationIndex yer alır.

Öğenin konumu ItemsControl ItemsControl.AlternationIndex
1 0
2 1
3 2
4 0
5 1
6 2
7 0

Değişen öğe kapsayıcıları için farklı görünümler belirtmek için kullanabileceğiniz çeşitli yöntemler vardır. Yöntemlerden biri items kapsayıcısının özelliklerini öğesine bağlamaktır ItemsControl.AlternationIndex. Ardından, belirli ItemsControl.AlternationIndex bir değere sahip öğe kapsayıcısına hangi değerin uygulanacağını belirtmek için bir AlternationConverter kullanabilirsiniz. Tetikleyicileri, bir öğe kapsayıcısının özelliğinin değerine bağlı olarak değerini ItemsControl.AlternationIndexdeğiştirmek için de kullanabilirsiniz.

Şunlara uygulanır