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

时间:2014-09-04 18:52:48

标签: c# winrt-xaml windows-8.1 collectionviewsource

我有一个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

现在我想在每个组中显示具有替代背景的备用项目。 如果Item-1为黑色,则Item-2为白色,Item-3为黑色。由于Item-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;
}

如果有人能指出我正确的方向,我会很高兴。 在此先感谢。

1 个答案:

答案 0 :(得分:0)

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