总体结构
首先我们看一下报表控件最终的效果:
我们可以把报表看成是三部分,分别是表头,表主体和表尾。如果我们不使用WPF自带的DataGrid,自己一根线一根线去画的话,这个表格估计也是大工程了。所以一开始,我们就考虑使用DataGrid。但DataGrid怎么做出如图所示的表头和表尾呢?好像根本就不可能啊。尝试过很多方法之后,我必须承认,真的不可能。但我想到了另外一种方法。可以做一个自定义控件,分成三行。第一行是一个Grid,多少行多少列都好控制。第二行是主体,明显就是DataGrid了。第三行也可以用Grid做,我们使用了StackPanel,关系都不大,看具体需求。
这样的设计,可能你一看就会看出一些问题来,或许还会觉得行不通。但实际上,报表控件基本解决了这些问题。我们将在后面的章节讲解每部分的开发方法。