Udostępnij za pośrednictwem


ItemsControl.AlternationIndex Właściwość dołączona

Definicja

Pobiera przypisaną wartość kontenera elementów podczas przełączania kontenerów elementów.

see GetAlternationIndex, and SetAlternationIndex
see GetAlternationIndex
see GetAlternationIndex, and SetAlternationIndex
see GetAlternationIndex
see GetAlternationIndex, and SetAlternationIndex
see GetAlternationIndex

Przykłady

Poniższy przykład określa, że ListBox (który dziedziczy z ItemsControl) ma kontenery elementów naprzemiennych (które są typu ListBoxItem) i określa inne tło i pierwszy plan dla każdego z nich. W przykładzie właściwości Background i Foreground są powiązane z elementem ItemsControl.AlternationIndex i i udostępnia właściwość AlternationConverter 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 działa tak samo jak 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ć, aby określić różne wyglądy kontenerów elementów zmieniających się. Jedną z metod jest powiązanie właściwości kontenera elementów z elementem ItemsControl.AlternationIndex. Następnie można użyć elementu , AlternationConverter aby określić, która wartość ma 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 elementów w zależności od wartości .ItemsControl.AlternationIndex

Dotyczy