界面组件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对象表示数据表中的一条记录。

相关推荐
FuckPatience2 天前
WPF 具有跨线程功能的UI元素
wpf
诗仙&李白2 天前
HEFrame.WpfUI :一个现代化的 开源 WPF UI库
ui·开源·wpf
He BianGu2 天前
【笔记】在WPF中Binding里的详细功能介绍
笔记·wpf
He BianGu2 天前
【笔记】在WPF中 BulletDecorator 的功能、使用方式并对比 HeaderedContentControl 与常见 Panel 布局的区别
笔记·wpf
123梦野3 天前
WPF——效果和可视化对象
wpf
He BianGu3 天前
【笔记】在WPF中Decorator是什么以及何时优先考虑 Decorator 派生类
笔记·wpf
woshihonghonga3 天前
Ubuntu 如何安装.NET6 runtime
linux·ubuntu·.net
时光追逐者4 天前
一款专门为 WPF 打造的开源 Office 风格用户界面控件库
ui·开源·c#·.net·wpf
He BianGu4 天前
【笔记】介绍 WPF XAML 中 Binding 的 StringFormat详细功能
笔记·wpf
刚子编程4 天前
.NET开发中3秒判断该用 IEnumerable 还是 IQueryable
.net