C#对XtraGrid控件实现主从表关系绑定

 更新时间:2022年06月14日 15:58:08   作者:springsnow  
这篇文章介绍了C#对XtraGrid控件实现主从表关系绑定的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

1、准备源数据。

/// <summary>
/// 记录基础信息
/// </summary>
public class DetailInfo
{
    public DetailInfo()
    {
        this.ID = Guid.NewGuid().ToString();
    }

    /// <summary>
    /// ID标识
    /// </summary>
    public string ID { get; set; }

    /// <summary>
    /// 名称
    /// </summary>
    public string Name { get; set; }

    /// <summary>
    /// 描述信息
    /// </summary>
    public string Description { get; set; }
}

/// <summary>
/// 二级层次的列表
/// </summary>
public class Detail2Result : DetailInfo
{
    public List<DetailInfo> Detail2List { get; set; }
}

2、绑定数据源

/// <summary>
/// 绑定数据源
/// </summary>
private void BindData()
{
    //创建测试数据
    var result1 = new Detail2Result()
    {
        Name = "测试1",
        Description = "描述内容",
        Detail2List = new List<DetailInfo>()
        {
            new DetailInfo()
            {
                Name = "111测试",
                Description = "111描述内容"
            },
            new DetailInfo()
            {
                Name = "222测试",
                Description = "222描述内容"
            },
            new DetailInfo()
            {
                Name = "333测试",
                Description = "333描述内容"
            }
        }
    };

    var result2 = new Detail2Result()
    {
        Name = "测试2",
        Description = "描述内容",
        Detail2List = new List<DetailInfo>()
        {
            new DetailInfo()
            {
                Name = "111测试",
                Description = "111描述内容"
            },
            new DetailInfo()
            {
                Name = "222测试",
                Description = "222描述内容"
            },
            new DetailInfo()
            {
                Name = "333测试",
                Description = "333描述内容"
            }
        }
    };

    //构造一个记录的集合
    var list = new List<Detail2Result>() { result1, result2 };

    //绑定数据源
    this.gridControl.DataSource = list;
}

3、DevExpress的GridControl控件的设置

在主视图下添加一层视图为gridView2,并修改当前视图的 Change LeveName 为Detail2List (如果不修改结果是数据绑定失败)

设置gridView2属性中的ViewCaption 属性。

4、效果

5、子表格获取行数据

DevExpress.XtraGrid.Views.Grid.GridView currentView = (DevExpress.XtraGrid.Views.Grid.GridView)this.gridControl.FocusedView;
DetailInfo focusRow = currentView.GetFocusedRow() as DetailInfo; //用在事件中:currentView.GetRow(e.RowHandle) as DetailInfo;
XtraMessageBox.Show(focusRow.Name);

到此这篇关于C#对XtraGrid控件实现主从表关系绑定的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • C#连接蓝牙设备的实现示例

    C#连接蓝牙设备的实现示例

    本文主要介绍了C#连接蓝牙设备的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • c# 对cookies(增、删、改、查)的操作方法

    c# 对cookies(增、删、改、查)的操作方法

    以前觉得cookies操作无非就那么几种,但是“杯具事件”还是很多的,下面分享一下对cookies的简单操作
    2013-04-04
  • C#监控文件夹并自动给图片文件打水印的方法

    C#监控文件夹并自动给图片文件打水印的方法

    这篇文章主要介绍了C#监控文件夹并自动给图片文件打水印的方法,涉及C#针对文件夹及图片操作的相关技巧,非常具有实用价值,需要的朋友可以参考下
    2015-05-05
  • C#短消息提示窗口位置及窗口大小详解

    C#短消息提示窗口位置及窗口大小详解

    在我们的生活中无论是使用QQ,360安全卫士等软件的过程中,经常会遇到从右下方的托盘处弹出一个消息提示窗,比如新闻,产品更新等内容,下面这篇文章主要给大家介绍了关于C#短消息提示窗口位置及窗口大小的相关资料,需要的朋友可以参考下
    2022-12-12
  • 使用 CliWrap 让C#中的命令行交互(推荐)

    使用 CliWrap 让C#中的命令行交互(推荐)

    这篇文章主要介绍了使用 CliWrap 让C#中的命令行交互举重若轻,这是一个在 .NET 平台使用的命令行交互工具库, 通过在C# 中使用 Fluent 的API, 让命令行交互,感兴趣的朋友跟随小编一起看看吧
    2021-12-12
  • C#网络请求与JSON解析的示例代码

    C#网络请求与JSON解析的示例代码

    这篇文章主要介绍了C#网络请求与JSON解析的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • C#中的集合用法分析

    C#中的集合用法分析

    这篇文章主要介绍了C#中的集合用法,实例形式分析了集合元素的定义、赋值、插入、移除等操作,需要的朋友可以参考下
    2014-10-10
  • Unity C#执行bat脚本的操作

    Unity C#执行bat脚本的操作

    这篇文章主要介绍了Unity C#执行bat脚本的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • adonet基础示例分享(adonet连接数据库)

    adonet基础示例分享(adonet连接数据库)

    这篇文章主要介绍了adonet基础示例分享(adonet连接数据库),需要的朋友可以参考下
    2014-04-04
  • C#服务生命周期:Singleton、Scoped、Transient用法及说明

    C#服务生命周期:Singleton、Scoped、Transient用法及说明

    文章介绍了三种服务生命周期:单例、作用域和瞬态,并讨论了如何在ASP.NETCore中使用这些生命周期管理服务,单例在应用程序生命周期中只有一个实例,作用域在每个请求中创建一个新实例,瞬态每次请求时创建一个新实例
    2025-01-01

最新评论