GroupStyle.AlternationCount 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
取得或設定替代 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 。
將 Background 中的 HeaderTemplate 的 TextBlock 系結至 屬性, ItemsControl.AlternationIndex 並提供 AlternationConverter 。 請注意,附加 AlternationIndex 屬性是在 上 GroupItem 設定,而系結會使用 FindAncestor 來取得其值。
此範例也會藉由將 和 每個 ItemsControl.AlternationIndex 的 系 ListBoxAlternationCount 結 Background 設定為 ,在 三種色彩之間替代 專案的背景 ListBox 。 ListBox 在此情況下,背景會以三種色彩替代。
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,且 中有七 GroupItem 個 物件, ItemsControl 下表列出 ItemsControl.AlternationIndex 每個專案的 。
GroupItem在 中的位置ItemsControl | ItemsControl.AlternationIndex |
---|---|
1 | 0 |
2 | 1 |
3 | 2 |
4 | 0 |
5 | 1 |
6 | 2 |
7 | 0 |
您可以使用數種方法來指定替代 GroupItem 物件的不同外觀。 其中一個方法是將 或 ContainerStyleGroupStyle 中的 HeaderTemplate 屬性系結至 ItemsControl.AlternationIndex 。 然後 AlternationConverter ,您可以使用 來指定應套用至 GroupItem 具有特定 ItemsControl.AlternationIndex 值的 。 您也可以使用觸發程式,根據屬性的值來變更屬性 ItemsControl.AlternationIndex 的值。