Telerik radgridview控件(二)合并单元格,复合表头

1. telerik radgrid控件合并单元格;

参考链接:telerik官方文档

https://docs.telerik.com/devtools/wpf/controls/radgridview/styles-and-templates/styling-mergedcell

我主要用到了垂直方向上的单元格合并,将特定列,数据相同的单元格进行合并。

    第一步:首先需要对radgridview进行绑定,具体操作详见:https://blog.csdn.net/u014693181/article/details/80069695

    第二步:在radgridview中设定属性 MergedCellsDirection="Vertical",表示垂直合并单元格,当然也可以合并水平的单元格。运行后发现全部的列,只要数据相同,都会合并。

    第三步:设定每一列的属性,设定不进行合并单元格的列属性 IsCellMergingEnabled="False"

 <telerik:RadGridView x:Name="InnerPressureView" GroupRenderMode="Flat" NewRowPosition="Bottom" MergedCellsDirection="Vertical" 
                                                         CanUserInsertRows ="True"  AutoGenerateColumns="False" 
                                                         DataContext="{StaticResource MyViewModel}"  
                                                         ItemsSource="{Binding InnerPressure}" Margin="1,0,1,1" Grid.Row="1" >
                                        <telerik:RadGridView.Columns>
                                            <telerik:GridViewDataColumn DataMemberBinding="{Binding WellDepth}" IsCellMergingEnabled="False" Header="井深(m)"/>
                                            <telerik:GridViewDataColumn DataMemberBinding="{Binding VerticalDepth}"  IsCellMergingEnabled="False" Header="垂深(m)"/>
                                            <telerik:GridViewDataColumn DataMemberBinding="{Binding FluidName}"  Header="流体名称"/>
                                            <telerik:GridViewDataColumn DataMemberBinding="{Binding Density}"  Header="密度(g/cm^3)"/>
                                            <telerik:GridViewDataColumn DataMemberBinding="{Binding AnnularPressure}" IsCellMergingEnabled="False" Header="环空静压(Mpa)"/>
                                            <telerik:GridViewDataColumn DataMemberBinding="{Binding AnnularDensity}" IsCellMergingEnabled="False" Header="当量密度(g/cm^3)"/>
                                            <telerik:GridViewDataColumn DataMemberBinding="{Binding PipePressure}" IsCellMergingEnabled="False" Header="管内静压(Mpa)"/>
                                            <telerik:GridViewDataColumn DataMemberBinding="{Binding PipeDensity}" IsCellMergingEnabled="False" Header="当量密度(g/cm^3)"/>
                                            <telerik:GridViewDataColumn DataMemberBinding="{Binding Remark}" Header="压稳提示"/>
                                        </telerik:RadGridView.Columns>
                                    </telerik:RadGridView>

执行结果如下:


此外,在官网文档中,还可以自己定义合并单元格的样式,更多更具体的操作详见官网文档。

2. Telerik radgridview实现复合表头


类似于这样的复合表头,使用Telerik radgridview的GridViewColumnGroup属性可以实现。

第一步:为radgrid设定GridViewColumnGroup:

<telerik:RadGridView x:Name="InnerPressureView" GroupRenderMode="Flat" NewRowPosition="Bottom" MergedCellsDirection="Vertical" CanUserFreezeColumns="False" 
                                                         IsFilteringAllowed="False" ShowGroupPanel ="False"  CanUserInsertRows ="True"  AutoGenerateColumns="False" 
                                                         DataContext="{StaticResource MyViewModel}"  
                                                         ItemsSource="{Binding bindSource}" Margin="1,0,1,1" Grid.Row="1" >
                                        <telerik:RadGridView.ColumnGroups>
                                            <telerik:GridViewColumnGroup Name="IOD"  Header="ItemDetails" />
                                        </telerik:RadGridView.ColumnGroups>
                                    </telerik:RadGridView>

第二步:设定列属性 ColumnGroupName="IOD"

<telerik:RadGridView x:Name="InnerPressureView" GroupRenderMode="Flat" NewRowPosition="Bottom" MergedCellsDirection="Vertical" CanUserFreezeColumns="False" 
                                                         IsFilteringAllowed="False" ShowGroupPanel ="False"  CanUserInsertRows ="True"  AutoGenerateColumns="False" 
                                                         DataContext="{StaticResource MyViewModel}"  
                                                         ItemsSource="{Binding bindSource}" Margin="1,0,1,1" Grid.Row="1" >
                                        <telerik:RadGridView.ColumnGroups>
                                            <telerik:GridViewColumnGroup Name="IOD"  Header="ItemDetails" />
                                        </telerik:RadGridView.ColumnGroups>
                                        <telerik:RadGridView.Columns>
                                            <telerik:GridViewDataColumn DataMemberBinding="{Binding ItemID}" Header="ItemID"/>
                                            <telerik:GridViewDataColumn DataMemberBinding="{Binding ProductID}"  Header="ProductID" />
                                            <telerik:GridViewDataColumn DataMemberBinding="{Binding ListPrice}" ColumnGroupName="IOD" Header="ListPrice"/>
                                            <telerik:GridViewDataColumn DataMemberBinding="{Binding UnitCost}" ColumnGroupName="IOD"  Header="unitCost"/>
                                            <telerik:GridViewDataColumn DataMemberBinding="{Binding Attribute}" ColumnGroupName="IOD" Header="Attribute"/>
                                            <telerik:GridViewDataColumn DataMemberBinding="{Binding Status}" ColumnGroupName="IOD" Header="Status"/>
                                        </telerik:RadGridView.Columns>
                                    </telerik:RadGridView>
Telerik的radgridview用起来也挺方便,就是文档不好找。



猜你喜欢

转载自blog.csdn.net/u014693181/article/details/80070321