当前位置: 首页 > 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 替换为上述内容即可运行

相关文章:

  • 利用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
  • 张永宁任福建宁德市委书记
  • 交通运输局男子与两名女子办婚礼?官方通报:未登记结婚,开除该男子
  • 第1现场|俄媒称乌克兰网上出售北约对乌军培训手册
  • 4月22城新房价格上涨:上海一二手房价环比均上涨,核心城市土地热带动市场热度提升
  • 世卫大会连续九年拒绝涉台提案
  • 两名游客刻划八达岭长城,被拘5日罚200元