在wpf中,基于dev实现Gridcontrol单元格合并

来源:互联网 发布:怎么进入万方数据库 编辑:程序博客网 时间:2024/06/06 00:34
<dxg:GridControl x:Name="gvAppAddressAppModuleList" Grid.Row="0" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" ItemsSource="{Binding Path=aplist}"  >                    <dxg:GridControl.Columns  >                        <dxg:GridColumn FieldName="IsValids" Header="选择"  AllowEditing="False" AllowSorting="False"  HorizontalHeaderContentAlignment="Center" VisibleIndex="0" Width="40"  AllowCellMerge="False">                            <dxg:GridColumn.CellTemplate>                                <DataTemplate>                                    <CheckBox x:Name="cbSel" IsChecked="{Binding Data.IsValids}"                                     HorizontalAlignment="Center" VerticalAlignment="Center" >                                    </CheckBox>                                </DataTemplate>                            </dxg:GridColumn.CellTemplate>                        </dxg:GridColumn>                        <dxg:GridColumn FieldName="rn"  HorizontalHeaderContentAlignment="Center" Width="40" ReadOnly="True" Header="序号" AllowEditing="False" VisibleIndex="1" AllowCellMerge="False">                            <dxg:GridColumn.EditSettings>                                <dxe:TextEditSettings HorizontalContentAlignment="Center" />                            </dxg:GridColumn.EditSettings>                        </dxg:GridColumn>                        <dxg:GridColumn FieldName="IPAddress"  HorizontalHeaderContentAlignment="Center" Width="150" ReadOnly="True" Header="IP地址" AllowEditing="False" AllowCellMerge="True" VisibleIndex="2" >                            <dxg:GridColumn.EditSettings>                                <dxe:TextEditSettings HorizontalContentAlignment="Center" />                            </dxg:GridColumn.EditSettings>                        </dxg:GridColumn>                        <dxg:GridColumn FieldName="SubnetMask"  HorizontalHeaderContentAlignment="Center" Width="150" ReadOnly="True" Header="子网掩码" AllowEditing="False" AllowCellMerge="True"  VisibleIndex="3">                            <dxg:GridColumn.EditSettings>                                <dxe:TextEditSettings HorizontalContentAlignment="Center" />                            </dxg:GridColumn.EditSettings>                        </dxg:GridColumn>                        <dxg:GridColumn FieldName="GateWay"    HorizontalHeaderContentAlignment="Center" Width="110" ReadOnly="True" Header="网关" AllowEditing="False" AllowCellMerge="True" VisibleIndex="4">                            <dxg:GridColumn.EditSettings>                                <dxe:TextEditSettings HorizontalContentAlignment="Center" />                            </dxg:GridColumn.EditSettings>                        </dxg:GridColumn>                        <dxg:GridColumn FieldName="AppModule"  HorizontalHeaderContentAlignment="Center" Width="200" ReadOnly="True" Header="应用模块名称" AllowEditing="False" AllowCellMerge="True" VisibleIndex="5">                            <dxg:GridColumn.EditSettings>                                <dxe:TextEditSettings HorizontalContentAlignment="Left"  />                            </dxg:GridColumn.EditSettings>                        </dxg:GridColumn>                        <dxg:GridColumn FieldName="OSTypeName"  HorizontalHeaderContentAlignment="Center" Width="120" ReadOnly="True" Header="操作系统" AllowEditing="False"  AllowCellMerge="True" VisibleIndex="6">                            <dxg:GridColumn.EditSettings>                                <dxe:TextEditSettings HorizontalContentAlignment="Center"  />                            </dxg:GridColumn.EditSettings>                        </dxg:GridColumn>                        <dxg:GridColumn FieldName="PortNumber"  HorizontalHeaderContentAlignment="Center" Width="120" ReadOnly="True" Header="端口号" AllowEditing="False" AllowCellMerge="False" VisibleIndex="7">                            <dxg:GridColumn.EditSettings>                                <dxe:TextEditSettings HorizontalContentAlignment="Center"  />                            </dxg:GridColumn.EditSettings>                        </dxg:GridColumn>                        <dxg:GridColumn FieldName="PortDesc"  HorizontalHeaderContentAlignment="Center" Width="120" ReadOnly="True" Header="端口说明" AllowEditing="False" AllowCellMerge="False" VisibleIndex="8">                            <dxg:GridColumn.EditSettings>                                <dxe:TextEditSettings HorizontalContentAlignment="Center"  />                            </dxg:GridColumn.EditSettings>                        </dxg:GridColumn>                        <dxg:GridColumn FieldName="ModuleID" Header="查看详细"  AllowSorting="False" Width="100"  HorizontalHeaderContentAlignment="Center" VisibleIndex="9" AllowBestFit="True"  AllowCellMerge="True" AllowEditing="False">                            <dxg:GridColumn.CellTemplate>                                <DataTemplate>                                    <dx:SimpleButton x:Name="btnLook" Content="查看详细" HorizontalAlignment="Stretch"  VerticalAlignment="Center"    Width="100"  Click="btnLook_Click"   />                                </DataTemplate>                            </dxg:GridColumn.CellTemplate>                        </dxg:GridColumn>                    </dxg:GridControl.Columns>                    <dxg:GridControl.View>                        <dxg:TableView Name="TableView"                                 AllowPerPixelScrolling="True" ShowTotalSummary="False" ShowGroupPanel="False" AllowCellMerge="True" CellMerge="TableView_CellMerge"  />                    </dxg:GridControl.View>                </dxg:GridControl>   

    private void TableView_CellMerge(object sender, DevExpress.Xpf.Grid.CellMergeEventArgs e)        {            if (e.Column.FieldName == "SubnetMask" || e.Column.FieldName == "GateWay" || e.Column.FieldName== "ModuleID" ||e.Column.FieldName== "OSTypeName")            {                var tv = sender as TableView;                var gc = tv.DataControl;                var r1 = gc.GetRow(e.RowHandle1) as R_AppAddressAppModule;                var r2 = gc.GetRow(e.RowHandle2) as R_AppAddressAppModule;                e.Merge = r1.IPAddress == r2.IPAddress  && (r1.ModuleID ==r2.ModuleID);                e.Handled = true;            }        }        private void btnLook_Click(object sender, RoutedEventArgs e)        {            var btn = sender as SimpleButton;            var cellData = btn.DataContext as GridCellData;            var cellDataItem = cellData.View.DataControl.GetRow(cellData.RowData.RowHandle.Value) as R_AppAddressAppModule;            MessageBox.Show("hello");        }

代码下载:http://download.csdn.net/detail/xsfqh/9767026
0 0
原创粉丝点击