赞
踩
ListView 实现子项(ListViewItem)颜色间隔显示的样式。
1、定义一个转换器来控制行显示的颜色
- public sealed class BackgroundConverter : IValueConverter
- {
- public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
- {
- ListViewItem item = (ListViewItem)value;
- ListView listView = ItemsControl.ItemsControlFromItemContainer(item) as ListView;
- int index = listView.ItemContainerGenerator.IndexFromContainer(item);
- if (index % 2 == 0)
- return new SolidColorBrush((Color)ColorConverter.ConvertFromString("#FF33C3FB"));
- else
- {
- return new SolidColorBrush((Color)ColorConverter.ConvertFromString("#FF009DD0"));
- }
- }
-
- public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
- {
- throw new NotImplementedException();
- }
- }
**************************************************************************************************************
2、转换器添加到资源字典中
<converter:BackgroundConverter x:Key="BackgroundConverter"/>
**************************************************************************************************************
3、样式改写示例如下
- <!--ListView-->
- <Style x:Key="ListViewItemStyle" TargetType="{x:Type ListViewItem}">
- <Setter Property="Margin" Value="2,1,2,0"/>
- <Setter Property="Background">
- <Setter.Value>
- <Binding RelativeSource="{RelativeSource Self}" Converter="{StaticResource BackgroundConverter}" />
- </Setter.Value>
- </Setter>
- </Style>
**************************************************************************************************************
4、样式引用示例
- <ListView x:Name="ShowTipList" Height="110" Background="{StaticResource ThemeColor1}" ScrollViewer.VerticalScrollBarVisibility="Auto"
- ItemContainerStyle="{StaticResource ListViewItemStyle}"
- ItemsSource="{Binding DataList, Mode=TwoWay}" SelectedItem="{Binding SelectedItem,Mode=TwoWay}">
**************************************************************************************************************
5、效果图
**************************************************************************************************************
6、扩展
可以通过,继承ListView,定义一个继承ListView的类,使用GridView,添加样式隐藏GridView的列头,来达到上述的效果。
也可以通过使用StyleSelector的方法
**************************************************************************************************************
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。