南京酷得软件-陈朕

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 出现站点数 { getset; }
        
public DateTime 开始日期 { getset; }
        
public DateTime 结束日期 { getset; }
        
public int 最长持续天数 { getset; }
        
public string 最长持续天数出现站点 { getset; }
        
public double 过程最大雨量 { getset; }
        
public string 过程最大雨量出现站点 { getset; }
        
public double 日最大雨量 { getset; }
        
public string 日最大雨量出现站点 { getset; }
        
public List<连阴雨过程信息> Children { getset; }
    }

 

posted @ 2011-06-02 10:42  南京酷得软件-陈朕  阅读(2722)  评论(1编辑  收藏  举报
南京酷得软件-陈朕