2009-11-15 84 views

回答

7

项目控件具有使用样式对

交替计数看看here

<Style TargetType="{x:Type ListBoxItem}"> 
    <Style.Triggers> 
     <Trigger Property="ItemsControl.AlternationIndex" Value="0"> 
      <Setter Property="Background" Value="LightBlue"></Setter> 
     </Trigger> 
     <Trigger Property="ItemsControl.AlternationIndex" Value="1"> 
      <Setter Property="Background" Value="LightGreen"></Setter> 
     </Trigger> 
    </Style.Triggers> 
</Style> 

享受!

+1

这是一个很棒的功能,谢谢你的提供。但我只需要** **第一项有红色背景,而不是每个项目其中(itemIndex%AlternationCount)== 0.当然,我可以将AlternationCount绑定到ItemsSource.Count,但没有任何更好的方法来做这个? – levanovd 2009-11-15 11:24:28

+0

你的轮廓听起来可以接受,它全部在xaml中。它完成了工作,你可以继续做更好的事情。别人可能会想出更优雅的解决方案。 你可以做第一个绑定绑定到当前项目和第二个祖先绑定,绑定到列表框的itemssource的多重绑定。那么在你的转换器中,你可以检查该项目的索引是什么。但上面的解决方案都是在xaml中。我总是喜欢可读性。它在xaml中显而易见,不会锁定在转换器中 – 2009-11-15 11:52:48

+0

无需将AlternationCount绑定到ItemsSource.Count:只需将它设置为XAML中的Int32.MaxValue即可。 (我更喜欢使用“{x:Static sys:Int32.Maxvalue}”的AlternationCount =“2147483647”,因为它更快,大多数程序员可以识别2^31-1)。 – 2009-11-16 08:10:05

相关问题