WPF DataGrid 主从表 数据绑定方式

昨天在网上搜了一下午没有看到一个关于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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值