前三行WPF ListView的不同风格

Eri*_*kTJ 0 wpf listview styles

我希望我的前三项ListView具有特殊风格.我怎样才能实现这一目标?

我试过这个但是item总是为null:

if (tracklistQueue.Items.Count > 0) {
    ListViewItem item = (ListViewItem)tracklistQueue.ItemContainerGenerator.ContainerFromIndex(0);
    item.Style = (Style)FindResource("StyleName");
}  
Run Code Online (Sandbox Code Playgroud)

bni*_*dyc 6

您可以使用AlternationIndex和AlternationCount属性.

以下示例为前三行设置不同的背景颜色.

将此样式定义添加到UserControl(或Window):

<Style TargetType="ListViewItem">
    <Style.Triggers>
        <Trigger Property="ItemsControl.AlternationIndex" Value="0">
            <Setter Property="Background" Value="#FFFF0000" />
        </Trigger>
        <Trigger Property="ItemsControl.AlternationIndex" Value="1">
            <Setter Property="Background" Value="#FF00FF00" />
        </Trigger>
        <Trigger Property="ItemsControl.AlternationIndex" Value="2">
            <Setter Property="Background" Value="#FF0000FF" />
        </Trigger>
    </Style.Triggers>
</Style>
Run Code Online (Sandbox Code Playgroud)

将ListView的AlternationCount设置为大于ListView实际可以包含的行数的值:

<ListView AlternationCount="1000" />
Run Code Online (Sandbox Code Playgroud)

参考:

ItemsControl.AlternationCount属性

  • +1 - 这是执行此操作的正确方法,而不是订阅其中一个`ItemContainerGenerator`事件. (2认同)