替代行颜色WP7

时间:2012-07-18 11:16:26

标签: silverlight windows-phone-7 mvvm listbox listboxitem

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

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

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

当列表滚动到底部时,会向viewmodel发送一个命令,以向我的集合中添加更多数据。由于CollectionViewSource在日期时间排序,所以项目可以出现在列表中的任何位置,而不仅仅是在最后。

这会使http://chillijam.co.uk/2012/01/11/alternating-listbox-item-background-colours-in-wp7/How to apply alternate row style in listbox in window phone 7等方法无效。因为他们只检查以前添加的项目。

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

有没有人有想法?

1 个答案:

答案 0 :(得分: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);