我有以下内容ListView
:
<ListView>
<ListView.View>
<GridView/>
</ListView.View>
</ListView>
我想以编程方式将第二行的背景(例如)设置为红色。我应该怎么办?谢谢。
您可以使用类似的方法:
int index = 1;
ListViewItem row = ListView.ItemContainerGenerator.ContainerFromIndex(index) as ListViewItem;
row.BackGround = Brushes.Red;
您可以使用AlternationCount
将行的索引存储在 中AlternationIndex
,然后使用触发器将第二行(在索引 1 处)的背景设置为红色:
<ListView AlternationCount="{x:Static sys:Int32.MaxValue}">
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListViewItem}">
<Style.Triggers>
<Trigger Property="ItemsControl.AlternationIndex" Value="1">
<Setter Property="Background" Value="Red" />
</Trigger>
</Style.Triggers>
</Style>
</ListView.ItemContainerStyle>
...
</ListView>
AlternationCount
定义在重新开始为零之前要计数的行数。例如,如果设置为 2,行的索引将为 0 1 0 1 0 1 ...,允许您仅将奇数行或偶数行绘制为红色。将其设置为MaxValue
永远不会重新开始计数,有效地设置AlternationIndex
为实际索引。
请在这里澄清一件事。你能告诉我你是否只想把第二行的颜色变成红色。如果是这种情况,您可以遍历列表视图,然后在顶部保留一个计数变量,然后当计数 == 1 时,您可以将列表 view.background 颜色更改为红色。如果你试过这个,你能告诉我发生了什么吗?它是否以错误或某事或什么都没发生而结束。