界面组件DevExpress WPF中文教程:Grid - 如何识别行和卡片?

DevExpress WPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件的衍伸产品,还是以数据为中心的商业智能产品,都能通过DevExpress WPF控件来实现。

在Table(表格)视图中,数据记录用行表示,而在卡片视图中,数据记录用卡片表示。在本文中,行通常用于指"表视图"中的行和"卡片视图"中的卡片。

获取DevExpress WPF 正式版下载

识别行

视图中的行由唯一的整数值------行句柄来标识,视图使用以下规则将其行与行句柄关联:

  • 无论一行当前是否可见(一行可能由于滚动而不可见,也可能隐藏在折叠的组中),每一行都有一个行句柄来唯一地标识它。
  • 数据行句柄从零开始。
  • 组行句柄为负,从-1开始。

可见行也可以通过它们的可见索引来标识,这些指标从零开始,连续的整数被分配给额外的可见行(组或数据)。如果包含在折叠的组行中,则隐藏行。

下图说明了赋值规则,以及行句柄和可见索引之间的关系。

特殊行句柄
  • New Item Row (Table View) - 这一行允许最终用户向数据源添加新记录,它的句柄由DataControlBase.NewItemRowHandle属性返回。
  • Automatic Filter Row (Table View) - Auto Filter Row允许最终用户动态地过滤数据,在本行中输入文本将自动创建并对视图应用筛选器,它的句柄由DataControlBase.AutoFilterRowHandle属性返回。
  • 通常这个行句柄对应于视图中不存在的行,它的句柄由DataControlBase.InvalidRowHandle属性返回。
获取行句柄

DevExpress WPF GridControl包含多个方法,这些方法允许您在数据源中获取行句柄、可见索引和索引。接下来我们列出并描述了这些方法:

下面的示例显示如何获取已单击的行。

C#

cs 复制代码
private void TableView_MouseDown(object sender, MouseButtonEventArgs e) {
int rowHandle = grid.View.GetRowHandleByMouseEventArgs(e as MouseEventArgs);
MessageBox.Show(GetRowType(rowHandle), "Hit Info");
}
private string GetRowType(int rowHandle) {
if (grid.IsGroupRowHandle(rowHandle))
return "Group Row";
if (rowHandle == GridControl.AutoFilterRowHandle)
return "Automatic Filter Row";
if (rowHandle == GridControl.NewItemRowHandle)
return "New Item Row";
if (rowHandle == GridControl.InvalidRowHandle)
return "Invalid Row";
return "Data Row";
}
获取数据源中的数据行和行索引

行句柄和可见索引反映了视图中行的可见顺序,这些可能会随着行位置或可见性的改变而改变。要引用数据源中的特定行,应该使用列表索引(数据源中的行索引)。要通过指定句柄来获取行的列表索引,请使用GridControl.GetListIndexByRowHandle方法。

要获取与具有指定句柄行对应的行对象,请使用DataControlBase.GetRow, GridControl.GetRowAsyncGridControl.GetRowByListIndex方法。要获取焦点行,请使用GridControl.GetFocusedRow方法。行对象表示数据源中的记录,例如 DataRow对象表示数据表中的一条记录。

相关推荐
heimeiyingwang1 天前
【架构实战】状态机架构:订单/工单状态流转设计
观察者模式·架构·wpf
rockey6271 天前
AScript之eval函数详解
c#·.net·script·eval·expression·动态脚本
周杰伦fans2 天前
AutoCAD .NET 二次开发:深入理解 EntityJig 的工作原理与正确实现
开发语言·.net
KmSH8umpK2 天前
Redis分布式锁从原生手写到Redisson高阶落地,附线上死锁复盘优化方案进阶第三篇
redis·分布式·wpf
KmSH8umpK3 天前
Redis分布式锁从原生手写到Redisson高阶落地,附线上死锁复盘优化方案
redis·分布式·wpf
William_cl3 天前
【C#/.NET 进阶】ASP.NET 架构与最佳实践:DI 依赖注入(IoC 核心)从入门到避坑
c#·asp.net·.net
武藤一雄3 天前
WPF:MessageBox系统消息框
前端·microsoft·c#·.net·wpf
武藤一雄3 天前
WPF进阶:万字详解WPF如何性能优化
windows·性能优化·c#·.net·wpf·.netcore·鲁棒性
wangnaisheng3 天前
【WPF】路由事件详细使用
wpf
雨浓YN3 天前
GKMLT通讯工具箱(WPF MVVM) - 07-倍福ADS通讯
网络·wpf