Studio for WPF: C1DataGrid 实现 MultiDataTrigger 功能

在本篇文章中,展示了如何实现 C1DataGrid MultiDataTrigger 功能。该功能可以通过前台 XMAL 页面实现,无需任何后台编码,实现根据当前鼠标悬浮单元格内容更改背景色的功能。<img alt="MultiDataTrigger_ChangeBackColor" width="500px" src="http://our.componentone.com/wp-content/uploads/2013/12/MultiDataTrigger_ChangeBackColor.gif">

发布于 2013/12/24 00:00

ComponentOne Enterprise

在本篇文章中,展示了如何实现 C1DataGrid  MultiDataTrigger 功能。该功能可以通过前台 XMAL 页面实现,无需任何后台编码,实现根据当前鼠标悬浮单元格内容更改背景色的功能。

设置 C1DataGrid 数据源

 

  1: public class Person
  2: {
  3:   public string Name { get; set; }
  4:   public string Address { get; set; }
  5: }
  6:   
  7: .......
  8:   
  9: person = new ObservableCollection()
 10: {
 11:   new Person(){Name="Prabhat",Address="India"},
 12:   new Person(){Name="Joe",Address="US"},
 13:   new Person(){Name="John",Address="UK"},
 14:   new Person(){Name="Victor",Address="Europe"},
 15:   new Person(){Name="Fuller",Address="UK"},
 16:   new Person(){Name="Richa",Address="India"},
 17:   new Person(){Name="Dia",Address="Europe"},
 18:   new Person(){Name="Smith",Address="US"}
 19: };
 20: datagrid.ItemsSource = person;

 

实现 MultiDataTrigger

以下 XMAL 实现了根据鼠标悬浮单元格数据更改当前单元格背景色的功能:

  1: <style>
  2:         <Style.Triggers>
  3:         <DataTrigger Binding="{Binding Path=Row.DataItem.Address, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=my:DataGridRowPresenter}}" Value="UK">
  4:             <Setter Property="Background" Value="Yellow" />
  5:         </DataTrigger>
  6:         <DataTrigger Binding="{Binding Path=Row.DataItem.Address, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=my:DataGridRowPresenter}}" Value="Europe">
  7:             <Setter Property="Background" Value="Orange" />
  8:         </DataTrigger>
  9:         <MultiDataTrigger>
 10:             <MultiDataTrigger.Conditions>
 11:                 <Condition Binding="{Binding Path=Row.DataItem.Address, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=my:DataGridRowPresenter}}" Value="India" />
 12:                 <Condition  Binding="{Binding RelativeSource={RelativeSource Self}, Path=IsMouseOver}" Value="True"  />
 13:             </MultiDataTrigger.Conditions>
 14:             <Setter Property="Background" Value="Blue" />
 15:         </MultiDataTrigger>
 16:         <MultiDataTrigger>
 17:             <MultiDataTrigger.Conditions>
 18:                 <Condition Binding="{Binding Path=Row.DataItem.Address, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=my:DataGridRowPresenter}}" Value="US" />
 19:                 <Condition  Binding="{Binding RelativeSource={RelativeSource Self}, Path=IsMouseOver}" Value="True"  />
 20:             </MultiDataTrigger.Conditions>
 21:             <Setter Property="Background" Value="Green" />
 22:         </MultiDataTrigger>
 23:   
 24: </style>

 

效果图如下:

MultiDataTrigger_ChangeBackColor

 

Demo 下载:

VS2010+.Framework 4.0 + C# 点击下载

 

VS2010+Framework 4.0 + VB.NET 点击下载

关于葡萄城

葡萄城是专业的软件开发技术和低代码平台提供商,以“赋能开发者”为使命,致力于通过表格控件、低代码和BI等各类软件开发工具和服务,一站式满足开发者需求,帮助企业提升开发效率并创新开发模式。葡萄城开发技术始于1980年,40余年来始终聚焦软件开发技术,有深厚的技术积累和丰富的产品线。是业界能够同时赋能软件开发和低代码开发的企业。凭借过硬的产品能力、活跃的用户社区和丰富的伙伴生态,与超过3000家合作伙伴紧密合作,产品广泛应用于信息和软件服务、制造、交通运输、建筑、金融、能源、教育、公共管理等支柱产业。

相关产品
推荐相关案例
关注微信
葡萄城社区二维码

关注“葡萄城社区”

加微信获取技术资讯

加微信获取技术资讯

想了解更多信息,请联系我们, 随时掌握技术资源和产品动态