2

我有以下内容ListView

<ListView>
   <ListView.View>
      <GridView/>
   </ListView.View>
</ListView>

我想以编程方式将第二的背景(例如)设置为红色。我应该怎么办?谢谢。

4

3 回答 3

3

您可以使用类似的方法:

int index = 1;
ListViewItem row = ListView.ItemContainerGenerator.ContainerFromIndex(index) as ListViewItem;
row.BackGround = Brushes.Red;
于 2012-09-15T18:15:20.713 回答
2

您可以使用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为实际索引。

于 2012-09-15T11:17:42.113 回答
-1

请在这里澄清一件事。你能告诉我你是否只想把第二行的颜色变成红色。如果是这种情况,您可以遍历列表视图,然后在顶部保留一个计数变量,然后当计数 == 1 时,您可以将列表 view.background 颜色更改为红色。如果你试过这个,你能告诉我发生了什么吗?它是否以错误或某事或什么都没发生而结束。

于 2012-09-15T10:11:58.887 回答