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

【C#】用 DevExpress 创建带“下拉子表”的参数表格视图

展示如何用 DevExpress 创建带“下拉子表”的参数表格视图。主表为 参数行 ParamRow,子表为 子项 ChildParam


一、创建模型类

public class ParamRow
{public string Pn { get; set; }public string DisplayName { get; set; }public string Value { get; set; }public List<ChildParam> Children { get; set; } = new List<ChildParam>();
}public class ChildParam
{public string Name { get; set; }public string Value { get; set; }
}

二、WinForms 主窗体代码(Form1.cs

public partial class Form1 : Form
{public Form1(){InitializeComponent();InitGrid();}private void InitGrid(){// 初始化控件var gridControl = new DevExpress.XtraGrid.GridControl{Dock = DockStyle.Fill};var gridView = new DevExpress.XtraGrid.Views.Grid.GridView(gridControl);gridControl.MainView = gridView;gridControl.ViewCollection.Add(gridView);this.Controls.Add(gridControl);// 假数据var data = new BindingList<ParamRow>{new ParamRow{Pn = "Pn001", DisplayName = "参数1", Value = "123",Children = new List<ChildParam>{new ChildParam { Name = "子项1", Value = "A" },new ChildParam { Name = "子项2", Value = "B" }}},new ParamRow{Pn = "Pn002", DisplayName = "参数2", Value = "456",Children = new List<ChildParam>{new ChildParam { Name = "子项1", Value = "C" }}}};// 主表列gridView.Columns.AddVisible("Pn", "参数号");gridView.Columns.AddVisible("DisplayName", "名称");gridView.Columns.AddVisible("Value", "值");gridControl.DataSource = data;// 设置 Master-DetailgridView.OptionsDetail.ShowDetailTabs = false;gridView.OptionsDetail.EnableMasterViewMode = true;gridView.MasterRowGetChildList += (s, e) =>{var row = gridView.GetRow(e.RowHandle) as ParamRow;e.ChildList = row?.Children;};gridView.MasterRowGetRelationName += (s, e) => e.RelationName = "子项";gridView.MasterRowGetRelationCount += (s, e) => e.RelationCount = 1;gridView.MasterRowGetLevelDefaultView += (s, e) =>{GridView childView = new GridView(gridControl);gridControl.ViewCollection.Add(childView);childView.Columns.AddVisible("Name", "子名称");childView.Columns.AddVisible("Value", "子值");e.DefaultView = childView;};}
}

三、运行环境

  • 需要 DevExpress.WinForms 组件
  • 使用 Visual Studio 创建 WinForms 项目,将 Form1.cs 替换为上述内容即可运行
http://www.dtcms.com/a/200849.html

相关文章:

  • 利用SAMap整合跨物种单细胞/空间转录组数据
  • 简单光学成像技术及其研究进展
  • 用户行为日志分析的常用架构
  • 【Pandas】pandas DataFrame mode
  • 《打造第二大脑》
  • 代购商城系统可以解决哪些重点难题?
  • FastAPI自定义异常处理:优雅转换Pydantic校验错误
  • java+selenium专题->启动浏览器下篇
  • 百胜ECOVADIS认证咨询公司,ecovadis评分提升攻略
  • 凸优化理论-进阶方法
  • Vue.js教学第六章:Vue 开发的高效路径,组件化基础
  • AI自动化工作流:开启当下智能生产力的价值
  • 2025 BYUCTF re 部分wp
  • 嵌入式学习笔记 D22:栈与队列
  • 板凳-------Mysql cookbook学习 (四)
  • GPU硬件计数器深度用法:通过NVIDIA Nsight Compute定位隐藏的性能瓶颈——以DRAM访问模式对带宽利用率影响分析为例
  • 第2篇 水滴穿透:IGBT模块的绝对防御体系
  • Python数据可视化初探——“十八般兵器”介绍
  • 嵌入式系统中,检测链路层(物理层)状态变化时,选择中断驱动还是定时轮询
  • 【每天一个知识点】embedding与representation
  • 为什么上传大量大文件推荐是使用 app 应用为不是 web 浏览器下载上传呢?
  • PLC组网的方法、要点及实施全解析
  • 网络传输(ping命令,wget命令,curl命令),端口
  • 代码随想录算法训练营第四十四天
  • 开发体育比分网站,有哪些坑需要注意的
  • 创建型:抽象工厂模式
  • C#:多线程
  • Ubuntu Desktop QEMU/KVM中使用Ubuntu Server 22.04配置k8s集群
  • 阿里云web端直播(前端部分)
  • 最小质因子之和(JAVA)线性筛