0

我想在我的 MVVM Light WP7 项目中使用列表框的交替背景颜色。

WP7 不支持交替 ListBox 项背景的背景颜色。

我有一个列表框,它的 itemsource 设置为 CollectionViewSource。CollectionViewSource 又绑定到我的 ViewModel 中的 ObservableCollection。CollectionViewSource 配置为按我的自定义对象中的日期时间属性对列表进行排序。

当列表滚动到底部时,会向视图模型发送一个命令,以将更多数据添加到我的集合中。由于 CollectionViewSource 按日期时间排序,因此项目可以出现在列表中的任何位置,而不仅仅是在末尾。

这使得http://chillijam.co.uk/2012/01/11/alternating-listbox-item-background-colours-in-wp7/如何在窗口电话 7 的列表框中应用备用行样式等方法不起作用。因为他们只检查以前添加的项目。

我还订阅了 ListView UpdateLayout 事件,并在那里遍历 ListBox 中的每个元素并交替背景,但这会触发很多次并使应用程序真的没有响应。

有人有想法吗?

4

1 回答 1

1

您可以尝试按行数访问行并为其添加颜色。

if( row.id % 2 ==0)
//first color
else 
//second color

编辑:当它被选中时,我用它来修改列表框行背景

     ListBoxItem lbiSelected = (ListBoxItem)(CalcultionList.ItemContainerGenerator.ContainerFromIndex(selectedItemIndex));
     //CalculationList is the name of my listbox
     lbiSelected.Background = new SolidColorBrush(Colors.Red);
于 2012-07-18T11:22:59.053 回答