WPF数据触发器检测非依赖属性
创始人
2024-06-18 01:41:14
0

我们在以前的文章中,曾经向大家介绍了有关属性触发器的一些介绍。可以知道,它是一种最常见的触发器类型。其实,WPF数据触发器和属性触发器除了面对的对象类型不一样外完全相同。#t#

WPF数据触发器是来检测非依赖属性------也就是用户自定义的.NET属性-----的值发生变化时来触发并调用符合条件的一系列Setter集合。

下边的示例演示了在绑定的ListBox里如果某个User对象符合某种特点(Role=Admin),则以突出方式显示这个对象。这里就用了DataTrigger,因为WPF数据触发器需要检测的是User对象的属性Role,这个对象是自定义的非可视化对象并且其属性为普通.NET属性。

 

  1. < Page.Resources> 
  2. < clr:Users x:Key="myUsers" /> 
  3. < DataTemplate DataType=
    "{x:Type clr:User}"> 
  4. < TextBlock Text="
    {Binding Path=Name}"/> 
  5. < /DataTemplate> 
  6. ...  
  7. < /Page.Resources> 
  8. < StackPanel> 
  9. < ListBox Width="200"   
  10. ItemsSource="{Binding 
    Source={StaticResource 
    myUsers}}" /> 
  11. < /StackPanel> 

 

WPF数据触发器主要的部分定义在了Style中,其针对的是每个ListBox的项,当其被绑定的数据的属性Role为Admin时,突出显示:

 

  1. < Style TargetType=
    "{x:Type ListBoxItem}"> 
  2. < Style.Triggers> 
  3. < DataTrigger Binding=
    "{Binding Path=Role}"
     Value="Admin"> 
  4. < Setter Property=
    "Foreground" Value="Red" /> 
  5. < /DataTrigger> 
  6. < /Style.Triggers> 
  7. < /Style> 

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...