新接触wpf,项目遇到,也是网上查找的,具体实现步骤记录一下。
1.创建转换类BackgroundConverter.cs
public sealed class BackgroundConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter,
CultureInfo culture)
{
ListViewItem item = (ListViewItem)value;
ListView listView=ItemsControl.ItemsControlFromItemContainer(item) as ListView;
// Get the index of a ListViewItem
int index =
listView.ItemContainerGenerator.IndexFromContainer(item);
if (index % 2 == 0)
{
return new SolidColorBrush(Color.FromRgb(85, 85, 85));
}
else
{
return new SolidColorBrush(Color.FromRgb(102, 102, 102));
}
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
2.Xaml中引入命名空间,并创映射
xmlns:converters="clr-namespace:XXX.Converters"
映射资源:
<UserControl.Resources>
<ResourceDictionary>
<converters:BackgroundConverter x:Key="myConverter"/>
</ResourceDictionary>
</UserControl.Resources>
3.应用
<Style x:Key="myItemStyle" TargetType="{x:Type ListViewItem}">
<Setter Property="Background">
<Setter.Value>
<Binding RelativeSource="{RelativeSource Self}"
Converter="{StaticResource myConverter}"/>
</Setter.Value>
</Setter>
</Style>
具体效果如下图,样式可参考上一篇。