GroupStyle.AlternationCount Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Değişen GroupItem nesnelerin sayısını alır veya ayarlar.
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
Özellik Değeri
Değişen GroupItem nesnelerin sayısı.
Örnekler
Aşağıdaki örnek, koleksiyondaki öğeleri gruplandıran öğesine bağlı bir CollectionViewSource oluştururListBox. Örnek, aşağıdakileri yaparak her GroupItem birinin üst bilgisinin arka planını iki renk arasında alternatif olarak alır:
2 olarak ayarlar AlternationCount .
AlternationConverter değerine ItemsControl.AlternationIndexbağlı olarak bir SolidColorBrushdöndüren bir oluşturur.
Background içindeki HeaderTemplate öğesini TextBlock özelliğine ItemsControl.AlternationIndex bağlar ve sağlarAlternationConverter. Ekli özelliğin AlternationIndex üzerinde GroupItemayarlandığını ve bağlamanın değerini almak için kullandığını FindAncestor unutmayın.
Örnek ayrıca öğesini ve her ListBox birinin öğesini öğesine bağlayarak BackgroundListBoxAlternationCount üç renk arasında öğelerin ListBox arka planını da değiştirmektedirItemsControl.AlternationIndex. Bu durumda arka plan üç renk arasında değiştirilir.
Öğeleri CollectionViewSource gruplandıran öğe gösterilmez. Öğeyi gruplandırma hakkında bilgi için bkz . Nasıl yapılır: XAML'de Görünüm Kullanarak Verileri Sıralama ve Gruplandırma.
<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>
Açıklamalar
AlternationCount özelliği ve ItemsControl.AlternationIndex ekli özelliği, iki veya daha fazla alternatif GroupItem nesnenin görünümünü belirtmenizi sağlar. Örneğin, içinde ItemsControlher üç GroupItem için alternatif arka plan renkleri belirtebilirsiniz. içindeki ItemsControl.AlternationIndex her GroupItemItemsControlbirine atanır. ItemsControl.AlternationIndex 0'da başlar, eksi 1'e AlternationCount kadar artar ve 0'da yeniden başlatılır. Örneğin, 3 ise AlternationCount ve içinde ItemsControlyedi GroupItem nesne varsa, aşağıdaki tabloda her öğe için öğesini ItemsControl.AlternationIndex listeler.
GroupItem Konumu:ItemsControl | ItemsControl.AlternationIndex |
---|---|
1 | 0 |
2 | 1 |
3 | 2 |
4 | 0 |
5 | 1 |
6 | 2 |
7 | 0 |
Alternatif GroupItem nesneler için farklı görünümler belirtmek için kullanabileceğiniz çeşitli yöntemler vardır. Yöntemlerden biri veya ContainerStyleGroupStyle içindeki HeaderTemplate özelliklerini öğesine bağlamaktırItemsControl.AlternationIndex. Ardından, belirli ItemsControl.AlternationIndex bir değere sahip olan değerine hangi değerin GroupItem uygulanacağını belirtmek için bir AlternationConverter kullanabilirsiniz. Tetikleyicileri, bir özelliğin değerine bağlı olarak değerini ItemsControl.AlternationIndexdeğiştirmek için de kullanabilirsiniz.