当前位置: 首页 > news >正文

DevExpress WinForms中文教程:Grid View - 如何实现识别行操作?(一)

DevExpress WinForms拥有180+组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!

在本教程中,您将了解到DevExpress WinForms网格视图标识其行的方式。

  • 数据源行索引
  • 行处理
  • 可见索引

DevExpress新旧版本帮助文档获取可点击这篇文章查看——>《界面控件DevExpress v26.1帮助文档大全(CHM版本)》

概述

数据源索引是指绑定列表中的记录,您将使用它们进行数据编辑。每个数据行都有一个惟一的索引,而组行只引用第一个可用的数据行,而服务行返回负值。

网格视图使用行句柄来标识任何类型的行,组行有连续的负索引,服务行有预定义值,数据行有正索引。

最后,可见索引按照在屏幕上显示的顺序枚举所有行,这些标识符主要用于实现行导航。

现在仔细看看何时使用每种类型的行标识符以及它们之间的区别。

纯数据中的行标识符

如果网格显示的是普通数据,那么这三个标识符在每行中通常是相同的,它们都是以0开头的行下标。

排序和过滤数据时行标识符之间的差异

数据排序

排序数据是查看这些标识符之间区别的一种方法,记录的顺序改变了,数据源索引也随之改变。相同的行由相同的数据源索引标识,但顺序现在不同了。另一方面,行句柄和可见索引仍然是从0开始的连续整数,并且它们在每行中相互匹配。

过滤数据

当您筛选行时,也会达到类似的效果。数据被重新加载,行结构被重新构建,可见索引和行句柄被更新以反映新的结构,而数据源索引跟随它们对应的行。

错误使用行句柄

重要的一点是,行句柄和可见索引会随着用户操作的变化而变化,创建一个简单的示例来说明这一点。DevExpress WinForms Ribbon控件中的Save Index按钮将保存当前聚焦行的句柄,为此声明一个整数savedRowHandle字段,并将网格视图的ColumnView.FocusedRowHandle属性值分配给它。

C#

int savedRowIndex; private void barButtonSaveIndex_ItemClick(object sender, ItemClickEventArgs e) { savedRowIndex = gridView1.FocusedRowHandle; }

还有一个Change Value按钮,它的Click事件处理程序使用ColumnView.SetRowCellValue方法将Name列单元格设置为保存行中的空字符串。

C#

private void barButtonChangeValue_ItemClick(object sender, ItemClickEventArgs e) { gridView1.SetRowCellValue(savedRowIndex, colName, string.Empty); }

运行应用程序并首先使用Audi A6聚焦行,单击Save Index按钮,然后将焦点移开,最后单击Change Value按钮。正如预期的那样,已保存行中的单元格已被更改。

重新启动应用程序,现在首先对Name列排序,然后找到显示Audi A6的行。保存行句柄,现在是2 - 使用Save Index按钮,然后清除排序并注意行句柄是如何更改的。因此,如果您按下Change Value,保存的Audi A6行将不会更改。

使用数据源索引代替行句柄

要解决这个问题,需要修改代码,使其存储数据源索引而不是行句柄。然后,在Change Value处理程序中,将存储的索引转换为行句柄,然后才应用更改。

C#

int savedRowIndex; private void barButtonSaveIndex_ItemClick(object sender, ItemClickEventArgs e) { savedRowIndex = gridView1.GetDataSourceRowIndex(gridView1.FocusedRowHandle); } private void barButtonChangeValue_ItemClick(object sender, ItemClickEventArgs e) { int rowHandle = gridView1.GetRowHandle(savedRowIndex); gridView1.SetRowCellValue(rowHandle, colName, string.Empty); }

运行应用程序,看看代码现在是否按预期工作,即使在使用排序或过滤等数据整形操作时也是如此。

未完待续,我们下期见......

http://www.gsyq.cn/news/1632782.html

相关文章:

  • 近期AI量化学习,按四个阶段检查风险
  • Dify实战指南:从零部署到构建AI工作流与RAG应用
  • 双向全桥LLC谐振变换器在新能源并网中的应用
  • 从零到专业:3步掌握Lean量化交易引擎,打造你的智能交易系统
  • 终极Kitty终端配置指南:10倍效率提升的macOS专属优化方案
  • Umi-OCR 在Windows 7环境下的完整部署与优化指南
  • 界面控件Telerik UI for Blazor 2024 Q4新版亮点 - 轻松实现日程自定义
  • Docker使用指南
  • Unitree Go2 ROS2 SDK:解锁四足机器人的智能感知与导航能力
  • AO3镜像站终极指南:解锁全球同人创作宝库的完整解决方案
  • 终极指南:5步掌握NVIDIA Profile Inspector显卡性能优化
  • JetBrain系列应用配置
  • DevExpress WinForms中文教程:Grid View - 行高和布局基础知识
  • 【一个信号输入通过逻辑门能输出俩个信号一个沿上升沿一个下降沿】2024-12-31
  • 剑指offer hot100 第三周
  • DevExpress WinForms中文教程:Grid View - 如何实现单元格合并?
  • Redis 五大数据结构及使用场景
  • 计算机毕业设计之基于YOLOv8的车辆检测与识别系统
  • PAT 乙级题目讲解:1005 《继续(3n+1)猜想》
  • delphi12 sqlserver 客户-服务简单连接设置
  • MySQL 8 设置允许远程连接(Windows环境)
  • Agent Skills架构深度解析:渐进式上下文加载的3层策略
  • CANN/GE LLM-DataDist CacheDesc API文档
  • UniApp相关知识点整理
  • 10分钟掌握Touch WX单文件开发模式,告别传统四文件烦恼
  • PyTorch神经网络基础与实战:从FNN到RNN
  • SteamShutdown终极指南:让电脑在Steam下载完成后自动关闭
  • CANN PID控制性能指标
  • nwpu-cram之机器人编程:ROS基础与应用
  • MEGA_F 00000-2006-000-06 直线驱动器模块