Windows 8.1-如何在绑定CollectionViewSource时获取元素的索引

本文关键字:获取 元素 索引 CollectionViewSource 绑定 Windows | 更新日期: 2023-09-27 18:20:51

我有一个Windows 8.1应用程序。

我的CollectionViewSource是一个项目列表,按项目创建日期分组。现在我已经将这个CollectionViewSource绑定到ListView,以便显示每个组的组头,然后显示相应的值。

假设我有3组,如下

September 1
    Item-1
    Item-2
    Item-3
September 2
    Item-4
    Item-5
September 3
    Item 6

现在,我想在每个具有备用背景的组中显示备用项目。如果第1项为黑色,则第2项为白色,第3项为黑色。由于第4项在第2组,它又是黑色的,依此类推。如果我得到每组中每个元素的索引,我可以使用转换器来替换背景。如何获取索引?

这是我的ListViewItemTemplate 的xaml

<DataTemplate x:Key="MyListViewItemTemplate">
    <Grid Background="{Binding Converter={StaticResource alternateListItemBackgroundConverter}}">
    </Grid>
</DataTemplate>

我应该在上面的xaml中绑定什么来获得我可以在转换器中使用的索引,如下所示。这是我的转换器的转换功能

public object Convert(object value, Type targetType, object parameter, string language)
{
    int index = value as int;
    if (value == null || !int.TryParse(value.ToString(), out index))
    {
        throw new ArgumentException("The value passed to this converter must be an integer value", "value");
    }
    return index % 2 == 0 ? Colors.Black : Colors.White;
}

如果有人能为我指明正确的方向,我将非常高兴。提前感谢。

Windows 8.1-如何在绑定CollectionViewSource时获取元素的索引

典型的解决方案可能是在分组函数中设置索引属性值,或者使用它对项进行分组或生成集合视图。