回复 3楼dof的帖子
没有弄出来,这是数据列表的代码 整个工程比较大,实在不好摘出来,想就合并第一列
前台
- <c1datagrid:C1DataGrid x:Name="grid" Grid.Row="1" HeadersVisibility="None" AutoGenerateColumns="False" SelectionMode="MultiRange" CanUserAddRows="False" AlternatingRowBackground="White" RowBackground="White" GridLinesVisibility="All" CanUserFreezeColumns="Left" FrozenTopRowsCount="2" FrozenColumnCount="2" c1:C1NagScreen.Nag="True">
- <c1datagrid:C1DataGrid.Columns>
- <!-- First two columns must be headers, put several headers using this custom syntax-->
- <c1datagrid:DataGridRowHeaderColumn Header="[参保类型]" Binding="{Binding TYPE_NAME}" />
- <c1datagrid:DataGridRowHeaderColumn Header="[就医方式]" Binding="{Binding MED_TYPE_NAME}" />
- <c1datagrid:DataGridTextColumn Header="[次均费用]" Binding="{Binding AVERAGE_COST}" />
- <c1datagrid:DataGridTextColumn Header="[环比增长率]" Binding="{Binding GROWTH_RATE}" />
- <c1datagrid:DataGridTextColumn Header="[同比增长率]" Binding="{Binding YEAR_ON_YEAR_GROWTH_RATE}" />
- </c1datagrid:C1DataGrid.Columns>
- <c1datagrid:C1DataGrid.TopRows>
- <!-- Add two rows of headers -->
- <c1datagrid:DataGridColumnHeaderRow />
- <c1datagrid:DataGridColumnHeaderRow />
- </c1datagrid:C1DataGrid.TopRows>
- </c1datagrid:C1DataGrid>
复制代码
后台
- #region 初始化加载
- public AnalysisOfAverageExpensesByVisitStyle()
- {
- InitializeComponent();
- this.Loaded += new RoutedEventHandler(AnalysisOfAverageExpensesByVisitStyle_Loaded);
- this.btnQuery.Click += new RoutedEventHandler(btnQuery_Click);
- this.btnListShow.Click += new RoutedEventHandler(btnListShow_Click);
- this.btnChartShow.Click += new RoutedEventHandler(btnChartShow_Click);
- //初始化隐藏搜索
- VisualStateManager.GoToState(this, "GoUp", true);
- #region 合并单元格
- _headerRowColumns = grid.Columns.Take(2).ToArray();
- _headerColumnRows = grid.TopRows.Take(2).ToArray();
- // forbid unfreezing headers
- grid.FrozenColumnCountChanged += delegate
- {
- if (grid.FrozenColumnCount < _headerRowColumns.Length)
- grid.FrozenColumnCount = _headerRowColumns.Length;
- };
- // handle merging when view port changes
- grid.MergingCells += new EventHandler<DataGridMergingCellsEventArgs>(grid_MergingCells);
- #endregion
- }
- #endregion 初始化加载
- #region datagrid合并单元格
- void grid_MergingCells(object sender, DataGridMergingCellsEventArgs e)
- {
- // view port columns & rows without headers
- var nonHeadersViewportCols = grid.Viewport.Columns.Where(c => !_headerRowColumns.Contains(c)).ToArray();
- var nonHeadersViewportRows = grid.Viewport.Rows.Where(r => !_headerColumnRows.Contains(r)).ToArray();
- // merge column & rows headers
- foreach (var range in MergingHelper.Merge(Orientation.Vertical, _headerColumnRows, nonHeadersViewportCols, true))
- {
- e.Merge(range);
- }
- foreach (var range in MergingHelper.Merge(Orientation.Horizontal, nonHeadersViewportRows, _headerRowColumns, true))
- {
- e.Merge(range);
- }
- // merge header intersection as we want, in this case, horizontally
- foreach (var range in MergingHelper.Merge(Orientation.Horizontal, _headerColumnRows, _headerRowColumns, true))
- {
- e.Merge(range);
- }
- // merge content
- foreach (var range in MergingHelper.Merge(Orientation.Vertical, nonHeadersViewportRows, nonHeadersViewportCols, false))
- {
- e.Merge(range);
- }
- }
- #endregion datagrid合并单元格
复制代码 |