Sdílet prostřednictvím


GroupStyle.AlternationCount Vlastnost

Definice

Získá nebo nastaví počet střídavých GroupItem objektů.

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

Hodnota vlastnosti

Počet střídavých GroupItem objektů.

Příklady

Následující příklad vytvoří ListBox , který je vázán na CollectionViewSource seskupit položky v kolekci. Příklad nahrazuje pozadí záhlaví každé GroupItem mezi dvěma barvami následujícím způsobem:

Příklad také alternativní pozadí položek mezi ListBox třemi barvami nastavením AlternationCount na a ListBox vazbu Background každého z nich ListBox .ItemsControl.AlternationIndex V tomto případě se pozadí střídá mezi třemi barvami.

Položka CollectionViewSource , která seskupí položky, se nezobrazuje. Informace o tom, jak seskupit položku, naleznete v tématu Postupy: Řazení a seskupování dat pomocí zobrazení v 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>

Poznámky

Vlastnost AlternationCount a připojená ItemsControl.AlternationIndex vlastnost umožňují určit vzhled pro dva nebo více střídavých GroupItem objektů. Můžete například zadat střídavé barvy pozadí pro každou třetinu GroupItem v objektu ItemsControl. Každé ItemsControl.AlternationIndex z nich GroupItem je přiřazeno v sadě ItemsControl. ItemsControl.AlternationIndex začíná na 0, přírůstky, dokud není AlternationCount mínus 1, a pak se restartuje na 0. Pokud je například AlternationCount 3 a v následující ItemsControltabulce je sedm GroupItem objektů, uvádí ItemsControl.AlternationIndex následující tabulka pro každou položku.

GroupItem Pozice vItemsControl ItemsControl.AlternationIndex
1 0
2 1
3 2
4 0
5 1
6 2
7 0

Existuje několik metod, které můžete použít k určení různých vzhledů střídavých GroupItem objektů. Jedna metoda je vytvořit vazbu vlastností v HeaderTemplate nebo ContainerStyle na GroupStyleItemsControl.AlternationIndex. Pak můžete použít AlternationConverter k určení, která hodnota se má použít na GroupItem hodnotu, která má určitou ItemsControl.AlternationIndex hodnotu. Triggery můžete také použít ke změně hodnoty vlastnosti v závislosti na hodnotě jeho ItemsControl.AlternationIndex.

Platí pro