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控件实现主从表关系绑定的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 为Xamarin.Forms的导航栏增加搜索功能

    为Xamarin.Forms的导航栏增加搜索功能

    这篇文章介绍了为Xamarin.Forms的导航栏增加搜索功能的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-01-01
  • 详解WPF双滑块控件的使用和强制捕获鼠标事件焦点

    详解WPF双滑块控件的使用和强制捕获鼠标事件焦点

    这篇文章主要为大家详细介绍了WPF中双滑块控件的使用和强制捕获鼠标事件焦点的实现,文中的示例代码讲解详细,感兴趣的可以尝试一下
    2022-07-07
  • C#实现目录跳转(TreeView和SplitContainer)的示例代码

    C#实现目录跳转(TreeView和SplitContainer)的示例代码

    本文主要介绍了C#实现目录跳转(TreeView和SplitContainer)的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • 杂谈try-catch-finally异常处理

    杂谈try-catch-finally异常处理

    这篇文章主要介绍了杂谈try-catch-finally异常处理的相关资料,需要的朋友可以参考下
    2016-01-01
  • C#函数式程序设计之用闭包封装数据的实现代码

    C#函数式程序设计之用闭包封装数据的实现代码

    如果一个程序设计语言能够用高阶函数解决问题,则意味着数据作用域问题已十分突出。当函数可以当成参数和返回值在函数之间进行传递时,编译器利用闭包扩展变量的作用域,以保证随时能得到所需要的数据
    2014-03-03
  • C#图表算法之最小生成树

    C#图表算法之最小生成树

    本文详细讲解了C#图表算法之最小生成树,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • 简介Winform中创建用户控件

    简介Winform中创建用户控件

    用户控件可以让开发人员对VS控件进行组装。下面我们来创建一个按钮的用户控件我们可以给它添加属性,并且添加相应鼠标移入、移出事件。
    2013-03-03
  • 使用C#实现生成一个绿色文件

    使用C#实现生成一个绿色文件

    这篇文章主要为大家详细介绍了如何使用C#实现生成一个绿色文件,可以免去安装的繁琐过程,直接运行,非常方便,有需要的小伙伴可以参考一下
    2024-04-04
  • C#获取系统当前日期和时间的示例详解

    C#获取系统当前日期和时间的示例详解

    这篇文章主要为大家详细介绍了C#如何使用DateTime的Now静态属性动态获得系统当前日期和时间,文中的示例代码讲解详细,有需要的小伙伴可以参考一下
    2024-01-01
  • C#编写的Base64加密和解密类

    C#编写的Base64加密和解密类

    本文给大家汇总介绍了几种C#编写的Base64加密和解密类的代码,从简单到复杂,都能够实现功能,有需要的小伙伴根据自己的项目需求参考下吧。
    2015-05-05

最新评论