GroupStyle.AlternationCount Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает или задает количество чередующихся GroupItem объектов.
public:
property int AlternationCount { int get(); void set(int value); };
public int AlternationCount { get; set; }
member this.AlternationCount : int with get, set
Public Property AlternationCount As Integer
Значение свойства
Число чередующихся GroupItem объектов.
Примеры
В следующем примере создается привязка ListBox к CollectionViewSource элементам в коллекции. В примере для заголовка каждого GroupItem из двух цветов можно перенаправить фон, выполнив следующие действия:
Задает AlternationCount значение 2.
Создает объект, возвращающий AlternationConverterSolidColorBrushзначение в зависимости от значения ItemsControl.AlternationIndex.
Привязывает BackgroundTextBlock объект в HeaderTemplate свойстве ItemsControl.AlternationIndex и предоставляет .AlternationConverter Обратите внимание, что AlternationIndex в присоединенном свойстве задано GroupItemзначение, а привязка используется FindAncestor для получения его значения.
В примере также можно изменить фон элементов между ListBox тремя цветами, задав ListBoxAlternationCount для каждого из них привязку Background каждого ListBox из ItemsControl.AlternationIndexних. В этом случае фон чередуется между тремя цветами.
Не CollectionViewSource отображается группа элементов. Сведения о том, как сгруппировать элемент, см. в разделе "How to: Sort and Group Data Using a View in XAML".
<StackPanel>
<StackPanel.Resources>
<!--Returns a Brush for the header of a GroupItem.-->
<AlternationConverter x:Key="GroupHeaderBackgroundConverter">
<SolidColorBrush>LightBlue</SolidColorBrush>
<SolidColorBrush>LightSteelBlue</SolidColorBrush>
</AlternationConverter>
<!--Returns a Brush for a ListBoxItem.-->
<AlternationConverter x:Key="BackgroundConverter">
<SolidColorBrush>Silver</SolidColorBrush>
<SolidColorBrush>LightGray</SolidColorBrush>
<SolidColorBrush>GhostWhite</SolidColorBrush>
</AlternationConverter>
</StackPanel.Resources>
<ListBox ItemsSource="{Binding Source={StaticResource groupedData}}"
DisplayMemberPath="CityName" AlternationCount="3" Name="lb">
<ListBox.GroupStyle>
<!--Set alternating backgrounds on the header of each group.-->
<GroupStyle AlternationCount="2">
<GroupStyle.HeaderTemplate>
<DataTemplate>
<TextBlock FontWeight="Bold"
Text="{Binding Path=Name}"
Background="{Binding
RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type GroupItem}},
Path=(ItemsControl.AlternationIndex),
Converter={StaticResource
GroupHeaderBackgroundConverter}}"/>
</DataTemplate>
</GroupStyle.HeaderTemplate>
</GroupStyle>
</ListBox.GroupStyle>
<ListBox.ItemContainerStyle>
<!--Set alternating backgrounds on the items in the ListBox.-->
<Style TargetType="{x:Type ListBoxItem}">
<Setter Property="Background"
Value="{Binding RelativeSource={RelativeSource Self},
Path=(ItemsControl.AlternationIndex),
Converter={StaticResource BackgroundConverter}}"/>
</Style>
</ListBox.ItemContainerStyle>
</ListBox>
</StackPanel>
Комментарии
Свойство AlternationCount и присоединенное свойство позволяют указать внешний ItemsControl.AlternationIndex вид для двух или нескольких переменных GroupItem объектов. Например, можно указать чередующиеся цвета фона для каждой трети GroupItem в объекте ItemsControl. Присваивается ItemsControl.AlternationIndex каждому GroupItem из них ItemsControl. ItemsControl.AlternationIndex начинается с 0, увеличивается до AlternationCount минус 1, а затем перезапускается на 0. Например, если AlternationCount имеется 3 и в ней ItemsControlесть семь GroupItem объектов, в следующей таблице перечислены ItemsControl.AlternationIndex элементы.
| GroupItem Положение вItemsControl | ItemsControl.AlternationIndex |
|---|---|
| 1 | 0 |
| 2 | 1 |
| 3 | 2 |
| 4 | 0 |
| 5 | 1 |
| 6 | 2 |
| 7 | 0 |
Существует несколько методов, с помощью которых можно указать различные внешние представления для чередующихся GroupItem объектов. Один из методов заключается в привязке свойств в HeaderTemplate или ContainerStyle из GroupStyle них ItemsControl.AlternationIndexк . Затем можно указать AlternationConverter , какое значение следует применить к GroupItem определенному ItemsControl.AlternationIndex значению. Триггеры также можно использовать для изменения значения свойства в зависимости от его значения ItemsControl.AlternationIndex.