我希望ListView
中的前三项具有特殊风格。我怎样才能做到这一点?
我试过这个但是项目总是为空:
if (tracklistQueue.Items.Count > 0) {
ListViewItem item = (ListViewItem)tracklistQueue.ItemContainerGenerator.ContainerFromIndex(0);
item.Style = (Style)FindResource("StyleName");
}
答案 0 :(得分: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>
将ListView的AlternationCount设置为大于ListView实际可以包含的行数的值:
<ListView AlternationCount="1000" />
参考:
答案 1 :(得分:0)
解决了它。 ItemContainerGenerator尚未完成生成项目。
将此添加到构造函数并将代码放在那里:
this.tracklistQueue.ItemContainerGenerator.StatusChanged += new EventHandler(ItemContainerGenerator_StatusChanged);