【WPF】GridControl的使用
一、前言
在WPF中我们常常使用DataGrid来显示数据,在Dev中也有一个类似的控件—GridControl。
二、范例
<dxg:GridControl
Grid.Row=""
ItemsSource="{Binding SelectedSummaryInfos}"
Margin ="" >
<dxg:GridControl.View >
<dxg:TableView Name="SummaryTable" AutoWidth="True" AllowMoveColumnToDropArea="False"/>
</dxg:GridControl.View>
<dxg:GridControl.Columns>
<dxg:GridColumn Header="楼层" Binding="{Binding FloorName}" ReadOnly="True"/>
<dxg:GridColumn Header="类型" Binding="{Binding QuantificationType}" ReadOnly="True"/>
<dxg:GridColumn Header="级别" Binding="{Binding RType}">
<dxg:GridColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding RowData.Row.RType}" FontFamily="SJQY"></TextBlock>
</DataTemplate>
</dxg:GridColumn.CellTemplate>
</dxg:GridColumn>
<dxg:GridColumn Header="直径(mm)" Binding="{Binding Diameter}" ReadOnly="True" />
<dxg:GridColumn Header="总长(m)" Binding="{Binding Quantity,StringFormat={}{0:###.###}}" ReadOnly="True"/>
<dxg:GridColumn Header="总重(t)" Binding="{Binding Weight,StringFormat={}{0:###.###}}" ReadOnly="True" />
</dxg:GridControl.Columns>
</dxg:GridControl>
通过以上代码范例,我们可以看到以下几个特点:
1. 当GridContol显示时默认有一个拖拽框用以将字段拖入其中进行分组排序,这是一个很强大的功能,如果你不需要这个功能,可以ShowGroupPanel=“false”。
2. AllowMoveColumnToDropArea="False"是不让用户随意拖拽某一列至垃圾区。
3. GridControl通过设置TableView的AutoWidth=“Auto”来使Columns占满整个Grid,如果不设置的话有时候你会发现展现出的Grid会多出一列!
4. GridControl通过TableView的Name来进行某些操作,如导出成Excel:
var projectName = "Project";
if (projectNameItem != null)
{
projectName = projectNameItem.Value;
} var dlg = QSContainer.Resolve<ISaveFileDialogService>(); //IOC
dlg.Filter = "Excel file(*.xls)|*.xls";
dlg.DefaultFileName = $"{projectName}_{"Summary.xls"}";
if (!dlg.ShowDialog())
{
return;
} var filePath = dlg.GetFullFileName();
SummaryTable.ExportToXls(filePath); // Name !
try
{
Process.Start(filePath);
}
finally { }
5. dxg:GridColumn不能直接包含FontFamily等在DataGridTextColumn中常见的属性,需要重写Template,重写的时候有两个地方需要绑定,Template绑定的是RowData.Row.XX:
<dxg:GridColumn Header="级别" Binding="{Binding RType}"> //第一处绑定
<dxg:GridColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding RowData.Row.RType}" FontFamily="MS"></TextBlock> //第二处绑定,这里是RowData.Row.XX
</DataTemplate>
</dxg:GridColumn.CellTemplate>
</dxg:GridColumn>
6. 上面说到GridControl有一个的强大的功能,GroupPanel。你可以将列标题拖入这个GroupPanel从而达到排序显示功能。如果我想把GroupPanel里的列恢复原样该怎么办?怎么通过代码把列给拖回原来的列表位置?这里有个简单的方法
foreach(var item in gc.Columns)
{
item.GroupIndex = -;
}
7. 这个GroupPanel显示的时候会有一行英文提示:gridcontrol Drag a column header here to group by that column;如果想要用其它文字或者语言表述的话,可以:
<dxg:TableView Name="tableView1" ShowTotalSummary="True">
<dxg:TableView.RuntimeLocalizationStrings>
<dxg:GridRuntimeStringCollection>
<dxg:RuntimeStringIdInfo Id="GridGroupPanelText" Value="Your words"/>
</dxg:GridRuntimeStringCollection>
</dxg:TableView.RuntimeLocalizationStrings>
</dxg:TableView>
三、小结
本文大致介绍了Dev的GridControl的基本功能,其实GridControl还有很多有用的设置可以去探索一下,我这里就做个抛砖引玉吧。
【WPF】GridControl的使用的更多相关文章
- WPF gridcontrol 后台代码清除过滤筛选条件
WPF 后台清除gridcontrol过滤筛选条件: ColumnName:列名 user_GridControl:gridcontrol控件名 user_GridControl.ClearColum ...
- wpf GridControl selectAll UnSelect
<Window x:Class="WpfApplication1.GridControlView" xmlns="http://schemas.microsoft. ...
- WPF GridControl单元格值与过滤值相同时,改变单元格背景色
DataTrigger的Value不可绑定,所以我们需要用MultiBinding来实现这个功能. <dxg:TableView.CellStyle> <Style TargetTy ...
- DevExpress v17.2新版亮点—WPF篇(二)
用户界面套包DevExpress v17.2终于正式发布,本站将以连载的形式为大家介绍各版本新增内容.本文将介绍了DevExpress WPF v17.2 新的Hamburger Menu.Sched ...
- WPF界面开发:DevExpress WPF在GridControl中固定行时处理时刻
DevExpress广泛应用于ECM企业内容管理. 成本管控.进程监督.生产调度,在企业/政务信息化管理中占据一席重要之地.通过DevExpress WPF Controls,您能创建有着强大互动功能 ...
- WPF datagrid/gridcontrol 中选中多行,复制粘贴到excel或其他文本编辑器中
wpf中 data grid 开启自带的选中,然后复制,可以到excel中直接粘贴,在某些业务场景中很实用,方便.开启也很简单: SelectionMode="Row" 加上这个, ...
- [Irving] Wpf DevexPress GridControl 获取选中行
WPF前台绑定事件代码: <RelayAction TargetControl="{Binding ElementName=GCInstoragePart}" MethodN ...
- 为WPF版的GridControl控件添加行序号功能
废话不多数,先上效果图和代码: 包装GridControl控件 cs using DevExpress.Xpf.Data; using DevExpress.Xpf.Grid; using Syste ...
- WPF DEV gridcontrol 自定义计算列(TotalSummary)
/// <summary> /// 自定义计算列 /// </summary> /// <param name="sender"></pa ...
随机推荐
- luogu 2051 [AHOI2009]中国象棋
luogu 2051 [AHOI2009]中国象棋 真是一道令人愉♂悦丧心并框的好题... 首先"没有一个炮可以攻击到另一个炮"有个充分条件就是没有三个炮在同一行或同一列.证明:显 ...
- jenkins+jacoco+ant自动化代码和应用服务代码分离场景获取远程服务的覆盖率
前提 自动化代码和应用服务代码分离.jenkins和tomcat服务器分离 思想 1.在tomcat启动javaagent监听. 2.运用其他job_B已部署的应用服务代码 3.拉取自动化代码,开始测 ...
- 在腾讯云上安装mysql遇到的问题
卸载mysql: 1.sudo apt-get autoremove --purge mysql-server-5.5 5.5 是数据库版本, mysql -v 显示版本信息 2.sudo apt-g ...
- 身份证扫描识别/身份证OCR识别的正确姿势,你get到了吗?
自从国家规定电信实名制之后,实名制已经推广到各个领域:办理通信业务需要实名制.银行开户需要实名制.移动支付需要实名制,就连注册个自媒体账户都需要实名制. 而实名制的背后,就是身份证信息的采集和录入验证 ...
- CentOS 下 Java 的下载、安装、配置
CentOS 下 Java 的下载.安装.配置 系统: CentOS 7 x86_64 Java 版本: 1.8.0_171 本文将 Java 目录放在 /usr/local/java 文件夹下,读者 ...
- ython进阶06 循环对象
这一讲的主要目的是为了大家在读Python程序的时候对循环对象有一个基本概念. 循环对象的并不是随着Python的诞生就存在的,但它的发展迅速,特别是Python 3x的时代,循环对象正在成为循环的标 ...
- 2.5星|《哈佛商学院管理与MBA案例全书》:书名太唬人了,依据中文经管书汇编整理而成
哈佛商学院管理与MBA案例全书(套装十册) 看到最后,列出的参考书目中全部是中文经管书,才明白这本书不是哈佛商学院出版的,是国内的编辑做的汇编.参考书目中除了中文经管书之外,还有一套<哈佛商学院 ...
- Mysql 表创建语句
# 新建bigData数据库 CREATE DATABASE bigData; USE bigData; # 创建dept表 CREATE TABLE dept( id INT UNSIGNED PR ...
- php 中关于pdo的使用
之前一段时间,开始了php的研究,看了关于PDO的一些资料,发现不错,整理和总结一下,作为开发笔记,留待日后使用,<PHP开发笔记系列(一)-PDO使用>. PDO是PHP Data Ob ...
- web.config详解(转载)
该文为转载 原文地址:http://www.cnblogs.com/gaoweipeng/archive/2009/05/17/1458762.html 花了点时间整理了一下ASP.NET Web.c ...