• 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; }
        }
    公司网站: http://www.codersoft.cn 专业开发: 气象软件、监狱网上购物系统、两法衔接平台
  • 相关阅读:
    学习!
    第10天:自适应高度
    第9天:第一个CSS布局实例
    nodejs in windows
    网络驱动器无法显示SVN图标问题
    nodejs获取文件修改时间
    gears旅程
    @import和link标签的差别
    evernote诡异bug
    让你的chromium支持支付宝
  • 原文地址:https://www.cnblogs.com/sucsy/p/2067747.html
Copyright © 2020-2023  润新知