ItemsControl.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.
içindeki değişen öğe kapsayıcılarının ItemsControlsayısını alır veya ayarlar. Bu, değişen kapsayıcıların benzersiz bir görünüme sahip olmasını sağlar.
public:
property int AlternationCount { int get(); void set(int value); };
[System.ComponentModel.Bindable(true)]
public int AlternationCount { get; set; }
[<System.ComponentModel.Bindable(true)>]
member this.AlternationCount : int with get, set
Public Property AlternationCount As Integer
Özellik Değeri
içindeki ItemsControldeğişen öğe kapsayıcılarının sayısı.
- Öznitelikler
Örnekler
Aşağıdaki örnek , (öğesinden ItemsControldevralınan) değişen öğe kapsayıcılarına (türündeListBoxItem) sahip olduğunu ListBox belirtir ve her biri için farklı bir arka plan ve ön plan belirtir. Örnek, ve Foreground özelliklerini öğesine ItemsControl.AlternationIndex bağlar Background ve her özellik için bir AlternationConverter sağlar.
<Grid>
<Grid.Resources>
<AlternationConverter x:Key="BackgroundConverter">
<SolidColorBrush>Blue</SolidColorBrush>
<SolidColorBrush>CornflowerBlue</SolidColorBrush>
<SolidColorBrush>LightBlue</SolidColorBrush>
</AlternationConverter>
<AlternationConverter x:Key="AlternateForegroundConverter">
<SolidColorBrush>White</SolidColorBrush>
<SolidColorBrush>Black</SolidColorBrush>
<SolidColorBrush>Navy</SolidColorBrush>
</AlternationConverter>
<Style x:Key="alternatingWithBinding" TargetType="{x:Type ListBoxItem}">
<Setter Property="Background"
Value="{Binding RelativeSource={RelativeSource Self},
Path=(ItemsControl.AlternationIndex),
Converter={StaticResource BackgroundConverter}}"/>
<Setter Property="Foreground"
Value="{Binding RelativeSource={RelativeSource Self},
Path=(ItemsControl.AlternationIndex),
Converter={StaticResource AlternateForegroundConverter}}"/>
</Style>
</Grid.Resources>
<ListBox AlternationCount="3" ItemsSource="{StaticResource data}"
ItemContainerStyle="{StaticResource alternatingWithBinding}"/>
</Grid>
Aşağıdaki örnek, nesneleri kullanarak Trigger önceki örnekle aynı işlemi yapar.
<Grid>
<Grid.Resources>
<Style x:Key="alternatingWithTriggers" TargetType="{x:Type ListBoxItem}">
<Setter Property="Background" Value="Blue"/>
<Setter Property="Foreground" Value="White"/>
<Style.Triggers>
<Trigger Property="ListBox.AlternationIndex" Value="1">
<Setter Property="Background" Value="CornflowerBlue"/>
<Setter Property="Foreground" Value="Black"/>
</Trigger>
<Trigger Property="ListBox.AlternationIndex" Value="2">
<Setter Property="Background" Value="LightBlue"/>
<Setter Property="Foreground" Value="Navy"/>
</Trigger>
</Style.Triggers>
</Style>
</Grid.Resources>
<ListBox AlternationCount="3" ItemsSource="{StaticResource data}"
ItemContainerStyle="{StaticResource alternatingWithTriggers}">
</ListBox>
</Grid>
Açıklamalar
ve ItemsControl.AlternationIndex özellikleri, AlternationCount iki veya daha fazla değişen öğe kapsayıcısının görünümünü belirtmenizi sağlar. Örneğin, içindeki ItemsControlher üçüncü öğe için alternatif arka plan renkleri belirtebilirsiniz. içindeki ItemsControl.AlternationIndex her öğe kapsayıcısına ItemsControlatanır. ItemsControl.AlternationIndex 0'da başlar, eksi 1 olana AlternationCount kadar artar ve sonra 0'da yeniden başlatılır. Örneğin, 3 ise AlternationCount ve içinde ItemsControlyedi öğe varsa, aşağıdaki tabloda her öğenin listesi ItemsControl.AlternationIndex yer alır.
Öğenin konumu ItemsControl | ItemsControl.AlternationIndex |
---|---|
1 | 0 |
2 | 1 |
3 | 2 |
4 | 0 |
5 | 1 |
6 | 2 |
7 | 0 |
Değişen öğe kapsayıcıları için farklı görünümler belirtmek için kullanabileceğiniz çeşitli yöntemler vardır. Yöntemlerden biri items kapsayıcısının özelliklerini öğesine bağlamaktır ItemsControl.AlternationIndex. Ardından, belirli ItemsControl.AlternationIndex bir değere sahip öğe kapsayıcısına hangi değerin uygulanacağını belirtmek için bir AlternationConverter kullanabilirsiniz. Tetikleyicileri, bir öğe kapsayıcısının özelliğinin değerine bağlı olarak değerini ItemsControl.AlternationIndexdeğiştirmek için de kullanabilirsiniz.