Поделиться через


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 чередуется между двумя цветами, выполнив следующие действия:

В примере также чередуется фон элементов в 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.

Применяется к