DevExpress WPF GridControl 绑定行的前景色和背景色

怎样通过判断一个行内的字段的值来改变该行的颜色呢?

我们使用绑定来做:

GridControl控件的行的概念很模糊,我们要想动态改变行的颜色不是设置一下Background就能做到的,我们需要改变它的RowStyle,下面是代码:

1 <Style x:Key = "RowStyle" BasedOn = "{StaticResource {dxgt:GridRowThemeKey ResourceKey=RowStyle}}" TargetType = "{x:Type dxg:GridRowContent}">
2             <Setter Property = "Background" Value="{Binding Row, Converter={StaticResource alarmLevelConverter}}"/>
3         </Style>

把它赋给

1     <dxg:GridControl.View>
2                 <dxg:TableView RowStyle="{DynamicResource RowStyle}" />
3             </dxg:GridControl.View>        

然后转换器怎么写呢?

 1     [ValueConversion(typeof(AlarmHappeningClass), typeof(Brush))]
 2
 3     public class AlarmLevelConverter : IValueConverter
 4     {
 5
 6         public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
 7         {
 8             AlarmHappeningClass alarmrow = value as AlarmHappeningClass;
 9             if (alarmrow == null)
10                 return Brushes.Transparent; ;
11             if (alarmrow.AlarmLevel=="紧急")
12                 return Brushes.Red;
13             else if (alarmrow.AlarmLevel == "重要")
14                 return Brushes.Orange;
15             return Brushes.Transparent;
16         }
17
18         public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
19         {
20             throw new NotSupportedException();
21         }
22
23     }

上面的转换器,根据自己的需要改代码就行了,如果在加trigger,自己在代码里面加就可以了。

时间: 2024-08-01 12:16:44

DevExpress WPF GridControl 绑定行的前景色和背景色的相关文章

WPF界面开发:DevExpress WPF在GridControl中固定行时处理时刻

DevExpress广泛应用于ECM企业内容管理. 成本管控.进程监督.生产调度,在企业/政务信息化管理中占据一席重要之地.通过DevExpress WPF Controls,您能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案. 无论是Office办公软件的衍伸产品,还是以数据为中心的商业智能产品,都能通过该控件来实现. 本文 将为大家介绍如何在GridControl中固定行时处理时刻.在接下来的系列文章中,小编将为大家介绍一些De

[Devexpress]GridControl 绑定DataSource时GridView列不变化

Devexpress  GridControl 绑定DataSource时GridView列不变化 1.使用VS自带的DataGridView替代 2.数据绑定以后调用 gridView.PopulateColumns()  函数 重新创建列 gcSummary.DataSource = _dtData; gvSummary.PopulateColumns();

WPF 根据绑定值设置DataGrid行背景色

实现这个功能可以使用类型转换器 1建立一个类BGConverter.cs该类需要继承IValueConverter接口,并实现接口的Convert与ConvertBack方法.注意在Class上需要加上一句话, [ValueConversion(typeof(int),typeof(Brushes))] 前一个type是源类型,后一个是目标类型 [ValueConversion(typeof(int),typeof(Brushes))] class BGConverter:IValueConve

WPF DataGrid 双击行 获得绑定数据

原文:WPF DataGrid 双击行 获得绑定数据 1)增加事件 2)增加对象获取 1)事件代码 Datagrid 增加事件 MouseDoubleClick="dataGrid_MouseDoubleClick" private void dataGrid_MouseDoubleClick(object sender, System.Windows.Input.MouseButtonEventArgs e) { DataGrid datagrid = sender as DataG

DevExpress之GridControl

引用自:http://blog.csdn.net/mask_soft/article/details/8985454 GridView右键菜单 一.添加右键菜单 1.在VS工具箱中的"菜单和工具栏"找到ContextMenuStrip控件,双击添加. 2.点击ContextMenuStrip右上方的小三角形,打开编辑项,可以添加菜单项.至于菜单点击事件,这里就不多说了. 3.选择gridControl(注意这里不是gridView的属性),在属性中可以找到ContextMenuStri

DevExpress的GridControl控件更新數據問題解決辦法

開發WPF程序時,使用Devexpress的GridControl控件用ItemSource綁定數據,在頁面進行編輯時,當屬性繼承INotifyPropertyChanged接口時會同步更新後臺數據.今天在開發時遇到一種情況,當通過GridControl中Row上Button[Command]改變行內數據,也就是binding的Detail數據已改變,這時NotifyPropertyChanged有觸發,但改變的行數據不會同步更新到UI上,目前測試有兩種方式進行解決. 1.直接new 一個新的行

DevExpress WPF v18.2新版亮点(二)

买 DevExpress Universal Subscription  免费赠 万元汉化资源包1套! 限量15套!先到先得,送完即止!立即抢购>> 行业领先的.NET界面控件2018年第二次重大更新--DevExpress v18.2日前正式发布,本站将以连载的形式为大家介绍新版本新功能.本文将介绍了DevExpress WPF v18.2的新功能,新版30天免费试用!点击下载>> Data Grid and Tree List 新的Data Filter Editor (CTP

gridcontrol显示行号,总行,打印,导出Excel,设置标头及内容居中方法

1.一般为了表格显示数据更直观,经常会显示行号以及总数.让gridcontrol显示行号,首先你需要设置一下显示行号的宽度,也就是IndicatorWith.默认值为-1,可根据实际数值需要设置宽度,案例设置为50:然后在gridView1_CustomDrawRowIndicator事件中添加如下代码: //设置显示行号样式,文字居中,也可根据e.Info.Appearance设置其他属性 e.Info.Appearance.TextOptions.HAlignment = DevExpres

如何在GridControl中显示图片列?控件DevExpress.XtraGrid.GridControl中显示图片列。

GridControl一列的ColumnEdit属性中选择PictureEdit,一个RepositoryItemPictureEdit添加完成.列的FieldName设置为Image列名,如img. GridControl绑定的数据,不管是DataTable.List或者其他源,添加一个列,列名为img. 以DataTable为例: Image xx=Image.FromFile("xxx"),yy=Image.FromFile("yyy"); dt.Column