WPF数据模板样式选择器

摘要:
使用数据模板样式选择器时,无法设置ItemContainerStyle的属性值。如果设置了该值,则数据模板样式选择器将失去其功能。

在使用数据模板样式选择器时,不能设置ItemContainerStyle的属性值,如果设置了该值,那么数据模板样式选择器会失去作用。

在使用数据模板样式选择器时,首先要创建数据模板样式选择器对象,此对象要重写StyleSelector基类的SelectStyle方法,并在方法中返回相应的样式,CS代码如下:

复制代码
public class ListViewItemStyleselector:StyleSelector
{
public Style Style1 { get; set; } //这个可以换成背景色,边框色等等
public Style Style2 { get; set; }
public override Style SelectStyle(object item, System.Windows.DependencyObject container)
{
ListView listView=ItemsControl.ItemsControlFromItemContainer(container) as ListView;
int index = listView.ItemContainerGenerator.IndexFromContainer(container);
if(index % 2==0)
{
return Style1 ;
}
else
{
return Style2 ;
}
}
}
复制代码

在创建完成数据模板样式选择器后,就可以在XAML中调用数据模板样式选择器了,代码如下:

<ListView.ItemContainerStyleSelector>
<local:styleselector Style1="{StaticResource style1}" Style2="{StaticResource style2}">
</local:styleselector>
</ListView.ItemContainerStyleSelector>

示例中的两个样式XAML代码如下:

复制代码
<Style x:Key="style1">
<Setter Property="Control.Padding" Value="0"/>
<Setter Property="Control.Background" Value="Chocolate"/>
<Style.Triggers>
<Trigger Property="ListBoxItem.IsSelected" Value="True">
<Setter Property="ListBoxItem.Background" Value="YellowGreen"/>
</Trigger>
</Style.Triggers>
</Style>
<Style x:Key="style2">
<Setter Property="Control.Padding" Value="0"/>
<Setter Property="Control.Background" Value="Green"/>
<Style.Triggers>
<Trigger Property="ListBoxItem.IsSelected" Value="True">
<Setter Property="ListBoxItem.Background" Value="YellowGreen"/>
</Trigger>
</Style.Triggers>
</Style>

免责声明:文章转载自《WPF数据模板样式选择器》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇linux日常工作积累(常见命令、常见安装、常见问题)Android必知必会-Android Studio修改包名下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

wpf学习笔记更新数据源

此示例基于wpf学习笔记-指定数据源1.让对象实现INotifyPropertyChanged接口,以便属性更改发出通知 {publicPerson(){}publicPerson(stringname,intage){this.name=name;this.age=age;}stringname;publicstringName{get{returnth...

WPF读写config配置文件

WPF读写config配置文件单。 1. 在你的工程中,添加app.config文件。文件的内容默认为: 1 <?xml version="1.0" encoding="utf-8" ?> 2 <configuration> 3 </configuration> 2.如果你想给程序配置一些参数,就在<c...

WPF 自定义TextBox,可控制键盘输入内容

非原创,整理之前的代码的时候找出来的,可用,与大家分享一下! 1 public class NumbericBoxWithZero : NumericBox 2 { 3 public NumbericBoxWithZero() 4 : base() 5 { 6...

WPF如何实现类似iPhone界面切换的效果(转载)

WPF如何实现类似iPhone界面切换的效果 (version .1) 转自:http://blog.csdn.net/fallincloud/article/details/6968764 在论坛上见到有人提出了这个问题(WPF实现点击横向切换界面) 我简单地做了个Sample。 效果图1: 效果图2: 设计思路 将这多个界面放入一个Orienta...

WPF 导出EXCEL 方法

是用WPF将数据导出成EXCEL其实和其他.NET应用是相通的,ASP.NET也好WINFORM也好,都是用相同的方法实现,唯一不同的是ASP.NET中可能会存在用户权限的问题,毕竟ASP.NET的执行用户是IIS指定的用户而不是默认的系统用户。 具体实现方法如下,代码中使用完整的名称空间,便于理解 第一步,不许引用Excel的程序集,不同于网上其他文章,...

WPF 查找控件的所有子控件

/// <summary> ///查找子控件 /// </summary> /// <typeparam name="T">控件类型</typeparam> /// <param name="parent">父控件依赖...