回复 2楼Alice的帖子
-
- //获取grid中为行头的列
- _headerRowColumns = grid.Columns.Take(2).ToArray();
- //获取grid中为列头的Toprow
- _headerColumnRows = grid.TopRows.Take(2).ToArray();
复制代码
- //获取grid中出去列头行头的实际数据行列范围
- var nonHeadersViewportCols = grid.Viewport.Columns.Where(c => !_headerRowColumns.Contains(c)).ToArray();
- var nonHeadersViewportRows = grid.Viewport.Rows.Where(r => !_headerColumnRows.Contains(r)).ToArray();
复制代码
不知道针对于上面的个人理解注释是否正确?
那么:
- //合并前两行和从第三列开始以后的列的范围内单元格,如果出现相同的文本就合并
- foreach (var range in MergingHelper.Merge(System.Windows.Controls.Orientation.Vertical, _headerColumnRows, nonHeadersViewportCols, true))
- {
- e.Merge(range);
- }
- //合并前两列和从第三行开始以后的行的范围内单元格,如果出现相同的文本就合并
- foreach (var range in MergingHelper.Merge(System.Windows.Controls.Orientation.Horizontal, nonHeadersViewportRows, _headerRowColumns, true))
- {
- e.Merge(range);
- }
复制代码
这两段代码是不是就代表了合并以下红线标出区域的单元格?
那么里应当最后一列asd应该是在合并范围内的呀。 |