我有一个 ItemsControl
及其关联的 DataTemplate
,如下所示。我的问题是如何对 ItemsControl
中的第 N 个项目设置不同的样式?我试图仅在某些项目上放置边框。
<DataTemplate x:Key="CTemplate">
<Grid HorizontalAlignment="Left" Width="200" Height="Auto" Margin="0,0,30,30">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="10"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<StackPanel Orientation="Vertical" Grid.Column="0">
<TextBlock Text="Device Name:" Style="{StaticResource i2_TB}"/>
<TextBlock Text="Device ID:" Style="{StaticResource i2_TB}" />
</StackPanel>
<StackPanel Orientation="Vertical" Grid.Column="2">
<TextBlock Text="{Binding DeviceName}" Style="{StaticResource i2_TB}" TextTrimming="CharacterEllipsis" />
<TextBlock Text="{Binding DeviceID}" Style="{StaticResource i2_TB}" TextTrimming="CharacterEllipsis" />
</StackPanel>
</Grid>
</DataTemplate>
最佳答案
我明白了,而且非常简单
首先设置与您的
N
匹配的AlternationCount
。就我而言,每行有 3 个项目,我希望第三个项目有所不同。<ItemsControl ItemTemplate="{StaticResource CTemplate}" AlternationCount="3">
其次,使用
AlternationIndex
作为数据触发器,在模板本身中设置数据触发器<DataTemplate.Triggers> <Trigger Property="ItemsControl.AlternationIndex" Value="2"> <Setter Property="BorderThickness" Value="0,0,0,1" TargetName="controlHost"/> </Trigger> </DataTemplate.Triggers>
获胜
关于wpf - 设置 ItemsControl 中第 N 个项目的样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19450102/