sliverlight DataGrid 合并表头

最近在项目上需要做报表,而有些报表就涉及到表头合并的问题:

11 

开始现在网上搜索了一番,在这篇文章上看到了一种实现方式,然后把代码下载。根据他的配置项,定义了一个报表。但是在运行中发现有bug,然后就研究源码。

发现在代码中:

 for (int i = 0; i < Headers.Count; i++)
            {
                int ColPos = 0;
                for (int j = 0; j < Headers[i].RowHeaderCells.Count; j++)
                {
                    DynamicHeaderCell dhc = Headers[i].RowHeaderCells[j];
                    AddHeaderTextBlock(LayoutRoot, dhc.Header, i, ColPos, dhc.RowSpan, dhc.ColSpan);
                    ColPos += dhc.ColSpan;
                }
            }

AddHeaderTextBlock(LayoutRoot, dhc.Header, i, ColPos, dhc.RowSpan, dhc.ColSpan); 这里这代码在处理报表在中间单元格合并就有问题。所以我在DynamicHeaderCell类中条件了两个属性,col,row,用于在动态生成表格头的时候定位单元格的位置。

下面给出具体的源码,同时还请各位多提出意见或解决方案!

源码下载

posted @ 2010-06-11 21:09  feiyang  阅读(723)  评论(1编辑  收藏  举报