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.
Создает объект AlternationConverter , возвращающий SolidColorBrushв зависимости от значения ItemsControl.AlternationIndex.
Привязывает BackgroundTextBlock объект объекта в к HeaderTemplate свойству ItemsControl.AlternationIndex и предоставляет AlternationConverter. Обратите внимание, что присоединенное AlternationIndex свойство задается в объекте GroupItem, а привязка использует FindAncestor для получения своего значения.
В примере также чередуется фон элементов в ListBox трех цветах, задавая в AlternationCountListBox и привязывая Background к .ListBoxItemsControl.AlternationIndex В этом случае фон чередуется между тремя цветами.
Объект CollectionViewSource , который группируется элементы, не отображается. Сведения о группировке элементов см. в статье Практическое руководство. Сортировка и группировка данных с помощью представления в 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 свойств в или ContainerStyleGroupStyle к ItemsControl.AlternationIndex. Затем можно использовать , AlternationConverter чтобы указать, какое значение следует применить к объекту GroupItem , который имеет определенное ItemsControl.AlternationIndex значение. Триггеры также можно использовать для изменения значения свойства в зависимости от его значения ItemsControl.AlternationIndex.