昨天在网上搜了一下午没有看到一个关于WPF DataGrid主从表数据绑定的示例,但是我坚信这个简单的功能肯定是支持的,经研究问题解决。

现把相关方法共享下,给现在还在郁闷的兄弟们一点参考。重点在于定义DataGrid的“RowDetailsTemplate”属性。而绑定的数据对象只要定义从表的集合Children就可以了。

前台定义如下:

 <DataGrid Grid.Row="0" Margin="0,0,0,0" VerticalAlignment="Top" AutoGenerateColumns="False" >
                                <DataGrid.Columns>                                                                  <DataGridTextColumn Header="出现连阴雨站数" IsReadOnly="True" Width="auto" Binding="{Binding Path=出现站点数}"/>
                                    <DataGridTextColumn Header="开始日期" IsReadOnly="True" Width="auto" Binding="{Binding Path=开始日期, StringFormat=yyyy-MM-dd}"/>
                                    <DataGridTextColumn Header="结束日期" IsReadOnly="True" Width="auto" Binding="{Binding Path=结束日期, StringFormat=yyyy-MM-dd}"/>
                                    <DataGridTextColumn Header="最长持续天数" IsReadOnly="True" Width="auto" Binding="{Binding Path=最长持续天数}"/>
                                    <DataGridTextColumn Header="最长持续天数出现站点" IsReadOnly="True" Width="auto" Binding="{Binding Path=最长持续天数出现站点}"/>                                    
                                    <DataGridTextColumn Header="过程最大雨量" IsReadOnly="True" Width="auto" Binding="{Binding Path=过程最大雨量}"/>
                                    <DataGridTextColumn Header="过程最大雨量出现站点" IsReadOnly="True" Width="auto" Binding="{Binding Path=过程最大雨量出现站点}"/>
                                    <DataGridTextColumn Header="日最大雨量" IsReadOnly="True" Width="auto" Binding="{Binding Path=日最大雨量}"/>
                                    <DataGridTextColumn Header="日最大雨量出现站点" IsReadOnly="True" Width="auto" Binding="{Binding Path=日最大雨量出现站点}"/>
                                </DataGrid.Columns>
                                <DataGrid.RowDetailsTemplate>
                                    <DataTemplate>
                                    <DataGrid Grid.Row="0"  Margin="0,0,0,0" ItemsSource="{Binding Path=Children}" VerticalAlignment="Top" AutoGenerateColumns="False" >
                                           
                                            <DataGrid.Columns>
                                            <DataGridTextColumn Header="站名" IsReadOnly="True" Width="80" Binding="{Binding Path=站名}"/>
                                            <DataGridTextColumn Header="站台号" IsReadOnly="True" Width="80" Binding="{Binding Path=站台号}"/>
                                            <DataGridTextColumn Header="开始日期" IsReadOnly="True" Width="auto" Binding="{Binding Path=开始日期, StringFormat=yyyy-MM-dd}"/>
                                            <DataGridTextColumn Header="结束日期" IsReadOnly="True" Width="auto" Binding="{Binding Path=结束日期, StringFormat=yyyy-MM-dd}"/>
                                            <DataGridTextColumn Header="持续天数" IsReadOnly="True" Width="auto" Binding="{Binding Path=连续降水日数}"/>
                                            <DataGridTextColumn Header="总雨量" IsReadOnly="True" Width="auto" Binding="{Binding Path=总降水量}"/>
                                            <DataGridTextColumn Header="一日最大雨量" IsReadOnly="True" Width="auto" Binding="{Binding Path=最大降水量}"/>
                                            <DataGridTextColumn Header="日照时数" IsReadOnly="True" Width="auto" Binding="{Binding Path=无降水日照时数}"/>
                                        </DataGrid.Columns>
                                    </DataGrid></DataTemplate>
                                </DataGrid.RowDetailsTemplate>
                            </DataGrid>

数据对象定义如下:

public class 区域连阴雨过程历史对比
    {
        public int 出现站点数 { get; set; }
        public DateTime 开始日期 { get; set; }
        public DateTime 结束日期 { get; set; }
        public int 最长持续天数 { get; set; }
        public string 最长持续天数出现站点 { get; set; }
        public double 过程最大雨量 { get; set; }
        public string 过程最大雨量出现站点 { get; set; }
        public double 日最大雨量 { get; set; }
        public string 日最大雨量出现站点 { get; set; }
        public List<连阴雨过程信息> Children { get; set; }
    }

转载于:https://www.cnblogs.com/sucsy/archive/2011/06/02/2067747.html

WPF DataGrid 主从表 数据绑定方式相关推荐

  1. wpf DataGrid主从表,DataGrid嵌套DataGrid主从结构rowdetailtemplate实现,绑定DataTable数据源,使用Visual Studio 2017

    wpf DataGrid主从表,DataGrid嵌套DataGrid主从结构rowdetailtemplate实现,绑定DataTable数据源,使用Visual Studio 2017 . 子表绑定 ...

  2. WPF DataGrid:解决排序、ScrollIntoView、刷新和焦点问题

    目录 介绍 第一种方法:记住选定的行,刷新DataGrid,再次选择行 最终方法:使用OneWay绑定,避免调用Refresh() 改进1:使ScrollIntoView()起作用 改进2:将选定的行 ...

  3. 在GridControl表格控件中实现多层级主从表数据的展示

    在一些应用场景中,我们需要实现多层级的数据表格显示,如常规的二级主从表数据展示,甚至也有多个层级展示的需求,那么我们如何通过DevExpress的GridControl控表格件实现这种业务需求呢?本篇 ...

  4. C# WPF DataGrid控件的详细介绍和推荐一些样式设计

    前面介绍过使用DataGrid简单绑定一个数据模型,接着介绍DataGrid的一些详细操作. 参考:C# WPF DataGrid的使用 定制DataGrid控件基本外观属性 RowBackgroun ...

  5. dbisam数据库主从表结构的使用方法

    要使用DBISAM数据库主从表结构,需用到下列控件: 一个TDBISAMTable或者TDBISAMQuery控件,命名为tblMaster或者qryMaster, 一个(或多个)TDBISAMTab ...

  6. WPF DataGrid控件的使用

    WPF DataGrid控件的使用 下面以一个例子说明DataGrid控件的使用方法: 一.程序框架 使用了MVVM Light框架 二.主要代码部分(使用MVVM Light框架): 1.主窗体xa ...

  7. DaleCloud(原NFine)介绍:使用easyui实现主从表提交(单据业务)

    目录 1.Form页面的Html代码 2.前端JS实现将DataGrid中的明细数据打包提交 3.后台接收提交数据的代码 4.Application业务中的保存方法 前言 很多使用DaleCloud( ...

  8. oracle主从关系表查询,Oracle 主从表联合查询解决方法

    Oracle 主从表联合查询 表A id   type   name 1    E      AA 2    F 表B id   Aid    name 1    2      BB 2    2   ...

  9. Oracle优化之表连接方式

    Oracle优化之表连接方式 在Oracle数据库中,两个表之间的表连接方法有排序合并连接.嵌套循环连接.哈希连接和笛卡尔连接四种 1.排序合并连接(sort merge join) 排序合并连接是一 ...

最新文章

  1. 数据结构实验之图论二:图的深度遍历(DFS)
  2. phing用户手册第四章Getting Started译文
  3. LeetCode 1219. 黄金矿工(回溯)
  4. 月薪2w的00后女财务,靠这套报表模板征服了老板
  5. 苹果Mac图片清晰度增强软件:Topaz Sharpen AI
  6. 在服务器上log4net没写日志
  7. 万稞pw80线切割编程软件_模具设计编程培训哪些内容?
  8. Android 开源项目分类汇总
  9. 机器翻译和自动译后编辑
  10. 几乎所有食物的英文翻译
  11. solidity投票(ballot)合约
  12. Aruco物体定位(追踪)在UE4中的实现
  13. zabbix报错排错大全
  14. 【C语言】通讯录——源代码
  15. Origin 中做图超出页面的调整办法
  16. 网易云linux字体太小,网易云音乐客户端和百度网盘在Deepin下字体显示太小的解决...
  17. 改进euler方法 c语言,科学网—计算方法:Euler法及其改进 - 张江敏的博文
  18. 干货分享!CynosDB for PostgreSQL 架构浅析
  19. 2022R2移动式压力容器充装考试试题模拟考试平台操作
  20. 数据库学习-连接/join

热门文章

  1. 查看显卡信号_既然大家说装了win10,就不用鲁大师监测显卡温度,为什么呢
  2. VB中的format格式化函数
  3. 英语总结系列(十八):六月一波三折的英语
  4. XML:体验学习的乐趣之XML总结
  5. 特斯拉好事连连:自动驾驶新硬件性能提升10倍,两名新董事昨晚上任,股价涨5.6%...
  6. 谷歌新旗舰Pixel 3让AI帮你接电话:你是谁?为什么来电?
  7. 干货 | 深度学习模型超参数搜索实用指南
  8. 一头盔一电极,MIT机器人读心完毕
  9. 净利润大涨三倍、股价飙升,百度新上了一个秘密武器:强化学习
  10. python 正则匹配手机号