通常我们的表体都是二维表格形式的,正如 Demo 中演示的那样绑定就好了。那如果我要自定义表体怎么办呢?
大体代码是这样的:
1、Xaml:
< local:Report x:Name ="Report3" Title ="自定义表体" > < local:Report.PageHeaderTemplate > < DataTemplate > < TextBlock Text =" {Binding Title} " FontSize ="16" FontWeight ="Bold" HorizontalAlignment ="Center" /> </ DataTemplate > </ local:Report.PageHeaderTemplate > < local:Report.ItemTemplate > < DataTemplate > < Grid Height ="120" Margin ="10" > < Rectangle Stroke ="Gray" StrokeThickness ="1" /> < StackPanel > < TextBlock Text =" {Binding Customer.Name} " Margin ="4" /> < TextBlock Text =" {Binding Product.Name} " Margin ="4" /> </ StackPanel > </ Grid > </ DataTemplate > </ local:Report.ItemTemplate > < local:Report.PageFooterTemplate > < DataTemplate > < Grid > < StackPanel Orientation ="Horizontal" HorizontalAlignment ="Right" VerticalAlignment ="Center" Margin ="5" > < TextBlock Text =" {Binding CurrentPageNumber} " /> < TextBlock Text =" {Binding TotalPageCount, StringFormat='/{0}'} " /> </ StackPanel > </ Grid > </ DataTemplate > </ local:Report.PageFooterTemplate > </ local:Report >
2、cs:
private void Button4_Click( object sender, RoutedEventArgs e) { var tag = new TagData(); tag.Total = data.Sum(r => r.Sum); tag.Count = data.Count; Report3.DefaultPageSize = PageSizes.B5; Report3.ItemsSource = data; Report3.TagData = tag; Report3.Preview(); }
生成的报表是这个样子: