欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 家装 > 【C#】用 DevExpress 创建带“下拉子表”的参数表格视图

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

2025/12/15 16:38:54 来源:https://blog.csdn.net/weixin_44939430/article/details/148062022  浏览:    关键词:【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 替换为上述内容即可运行

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词