ItemsControl.AlternationCount Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Получает или задает количество контейнеров чередующихся элементов в ItemsControl, что позволяет чередующимся контейнерам иметь уникальный внешний вид.
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
Значение свойства
Количество чередующихся контейнеров элементов в ItemsControl.
- Атрибуты
Примеры
В следующем примере указывается, что ListBox (который наследует от ItemsControl) имеет чередующиеся контейнеры элементов (которые имеют тип ListBoxItem) и задает разные фон и передний план для каждого из них. Пример привязывает Background свойства и Foreground свойства к каждому свойствуItemsControl.AlternationIndex.AlternationConverter
<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 объектов.
<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 Свойства AlternationCount позволяют указать внешний вид для двух или более чередующихся контейнеров элементов. Например, можно указать чередующиеся цвета фона для каждого третьего элемента в объекте ItemsControl. Назначается ItemsControl.AlternationIndex каждому контейнеру элементов в элементе ItemsControl. ItemsControl.AlternationIndex начинается с 0, увеличивается AlternationCount до минус 1, а затем перезапускается с 0. Например, если AlternationCount значение равно 3 и в ней ItemsControlсемь элементов, в следующей таблице перечислены ItemsControl.AlternationIndex элементы для каждого элемента.
Положение элемента в элементе ItemsControl | ItemsControl.AlternationIndex |
---|---|
1 | 0 |
2 | 1 |
3 | 2 |
4 | 0 |
5 | 1 |
6 | 2 |
7 | 0 |
Существует несколько методов, с помощью которых можно указать различные внешние представления для чередующихся контейнеров элементов. Один из методов — привязка свойств контейнера элементов к объекту ItemsControl.AlternationIndex. Затем можно указать AlternationConverter , какое значение следует применить к контейнеру элементов с определенным ItemsControl.AlternationIndex значением. Триггеры также можно использовать для изменения значения свойства контейнера элементов в зависимости от его значения ItemsControl.AlternationIndex.