CompositeLink Class
A composite link that can be used to combine several Printing Links together into a composite document.
Namespace: DevExpress.Xpf.Printing
Assembly:
DevExpress.Xpf.Printing.v17.2.dll
Declaration
public class CompositeLink :
TemplatedLink
Public Class CompositeLink
Inherits TemplatedLink
This code example demonstrates how to use the CompositeLink class to combine contents of several printing links in a single document.
Imports System.Collections.Generic
Imports System.Windows
Imports System.Windows.Documents
Imports DevExpress.Xpf.Grid
Imports DevExpress.Xpf.Printing
' ...
Namespace CompositeLinkExample
''' <summary>
''' Interaction logic for MainWindow.xaml
''' </summary>
Partial Public Class MainWindow
Inherits Window
Public Sub New()
InitializeComponent()
End Sub
Private Sub printButton_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
Dim links As New List(Of TemplatedLink)()
links.Add(New PrintableControlLink(CType(categoriesGrid.View, TableView)))
links.Add(New PrintableControlLink(CType(productsGrid.View, TableView)))
Dim compositeLink As New CompositeLink(links)
PrintHelper.ShowRibbonPrintPreview(Me, compositeLink)
End Sub
End Class
End Namespace
<Window x:Class="CompositeLinkExample.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="477" Width="908" xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid" xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core" xmlns:my="clr-namespace:CompositeLinkExample.nwindDataSetTableAdapters" xmlns:my1="clr-namespace:CompositeLinkExample">
<Window.Resources>
<dx:TypedSimpleSource x:Key="TypedSimpleSource" AdapterType="my:CategoriesTableAdapter" ContextType="my1:nwindDataSet" Path="Categories">
<dx:DesignDataManager.DesignData>
<dx:DesignDataSettings RowCount="5" />
</dx:DesignDataManager.DesignData>
</dx:TypedSimpleSource>
<dx:TypedSimpleSource x:Key="TypedSimpleSource1" AdapterType="my:ProductsTableAdapter" ContextType="my1:nwindDataSet" Path="Products">
<dx:DesignDataManager.DesignData>
<dx:DesignDataSettings RowCount="5" />
</dx:DesignDataManager.DesignData>
</dx:TypedSimpleSource>
</Window.Resources>
<Grid>
<dxg:GridControl AutoGenerateColumns="AddNew" EnableSmartColumnsGeneration="True" HorizontalAlignment="Left" Name="categoriesGrid" VerticalAlignment="Top" Height="188" Width="886" ItemsSource="{Binding Path=Data, Source={StaticResource TypedSimpleSource}}">
<dxg:GridControl.View>
<dxg:TableView AllowPerPixelScrolling="True" Name="tableView1" ShowTotalSummary="True" />
</dxg:GridControl.View>
</dxg:GridControl>
<dxg:GridControl AutoGenerateColumns="AddNew" EnableSmartColumnsGeneration="True" Height="208" HorizontalAlignment="Left" Margin="0,186,0,0" Name="productsGrid" VerticalAlignment="Top" Width="886" ItemsSource="{Binding Path=Data, Source={StaticResource TypedSimpleSource1}}">
<dxg:GridControl.View>
<dxg:TableView AllowPerPixelScrolling="True" Name="tableView2" ShowTotalSummary="True" />
</dxg:GridControl.View>
</dxg:GridControl>
<Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="762,403,0,0" Name="printButton" VerticalAlignment="Top" Width="112" Click="printButton_Click" />
</Grid>
</Window>
using System.Collections.Generic;
using System.Windows;
using System.Windows.Documents;
using DevExpress.Xpf.Grid;
using DevExpress.Xpf.Printing;
// ...
namespace CompositeLinkExample {
public partial class MainWindow : Window {
public MainWindow() {
InitializeComponent();
}
private void printButton_Click(object sender, RoutedEventArgs e) {
List<TemplatedLink> links = new List<TemplatedLink>();
links.Add(new PrintableControlLink((TableView)categoriesGrid.View));
links.Add(new PrintableControlLink((TableView)productsGrid.View));
CompositeLink compositeLink = new CompositeLink(links);
PrintHelper.ShowRibbonPrintPreview(this, compositeLink);
}
}
}
The image below demonstrates the result.
The following code snippet (auto-collected from DevExpress Examples) contains a reference to the CompositeLink class.
Note
The algorithm used to collect these code examples remains a work in progress. Accordingly, the links and snippets below may produce inaccurate results. If you encounter an issue with code examples below, please use the feedback form on this page to report the issue.
See Also