You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在DevExpress项目中仅实现主从结构的明细区域?

实现DevExpress GridControl飞行员列表点击展开航班明细的方案

没问题!我来帮你搞定这个需求——只需要实现点击飞行员列表的加号区域,展开对应航班明细的功能对吧?下面是一步步的实操方案:

1. 先准备好关联数据源

首先你得有对应的实体类,把飞行员和航班的关联关系明确下来,示例代码如下:

public class Pilot
{
    public int PilotId { get; set; }
    public string PilotName { get; set; }
    // 其他你需要的飞行员字段
    public List<Flight> AssignedFlights { get; set; } // 存当前飞行员对应的所有航班
}

public class Flight
{
    public int FlightId { get; set; }
    public string FlightNumber { get; set; }
    public DateTime DepartureTime { get; set; }
    // 其他你需要的航班字段
    public int PilotId { get; set; } // 关联对应的飞行员ID
}

之后在窗体加载时,把包含航班数据的飞行员集合绑定到GridControl:

private void PilotForm_Load(object sender, EventArgs e)
{
    // 这里替换成你实际获取数据的逻辑,确保每个Pilot的AssignedFlights都有对应数据
    List<Pilot> pilotData = GetPilotDataWithFlights();
    gridControl_Pilots.DataSource = pilotData;
}

2. 配置主GridView(飞行员列表)

  • 打开GridControl的设计器,选中主GridView(显示飞行员的那个视图)
  • 找到OptionsView属性组,把ShowDetailButtons设置为true——这就是每行左侧的加号区域
  • 给主GridView添加你需要显示的飞行员列(比如姓名、ID等)

3. 创建并配置明细GridView(航班列表)

  • 在GridControl设计器里,点击主GridView的「Create Detail Pattern」选项,生成一个新的GridView作为明细视图
  • 给这个明细视图添加航班需要显示的列(比如航班号、起飞时间等)
  • 关键配置:把明细视图的DataMember属性设置为AssignedFlights(也就是Pilot类里存储航班集合的属性名),这样主行展开时会自动加载对应飞行员的航班数据

4. 自定义明细区域的行为(可选)

如果需要调整展开逻辑或样式,可以做这些设置:

  • 要是想控制某行能不能展开(比如飞行员没有航班就隐藏加号),可以处理主GridView的MasterRowExpanding事件:
private void gridView_Pilots_MasterRowExpanding(object sender, DevExpress.XtraGrid.Views.Grid.MasterRowCanExpandEventArgs e)
{
    Pilot currentPilot = gridView_Pilots.GetRow(e.RowHandle) as Pilot;
    // 只有当飞行员有航班时才允许展开
    e.Allow = currentPilot?.AssignedFlights != null && currentPilot.AssignedFlights.Count > 0;
}
  • 还可以调整明细GridView的OptionsView属性,比如是否显示网格线、行号等,让界面更贴合你的需求

5. 测试效果

运行程序后,点击飞行员列表每行左侧的加号按钮,就能展开对应的航班明细区域,和你参考的效果一致啦!

内容的提问来源于stack exchange,提问作者Burak Turhan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:40:59