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;
}
如果有人能为我指明正确的方向,我将非常高兴。提前感谢。
典型的解决方案可能是在分组函数中设置索引属性值,或者使用它对项进行分组或生成集合视图。