diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/WpfReportViewer/WpfReportViewer.xaml.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/WpfReportViewer/WpfReportViewer.xaml.cs
new file mode 100644
index 0000000000..2ac2817a45
--- /dev/null
+++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/WpfReportViewer/WpfReportViewer.xaml.cs
@@ -0,0 +1,154 @@
+/*
+ * Created by SharpDevelop.
+ * User: Peter Forstmeier
+ * Date: 12.05.2011
+ * Time: 21:01
+ *
+ * To change this template use Tools | Options | Coding | Edit Standard Headers.
+ */
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+
+using ICSharpCode.Reports.Core.Exporter;
+using ICSharpCode.Reports.Core.Globals;
+using ICSharpCode.Reports.Core.ReportViewer;
+
+namespace ICSharpCode.Reports.Core.WpfReportViewer
+{
+
+ public interface IWpfReportViewer:IPreviewControl
+ {
+ IDocumentPaginatorSource Document {set;}
+ }
+ ///
+ /// Interaction logic for WpfReportViewer.xaml
+ ///
+
+ public partial class WpfReportViewer : UserControl,IWpfReportViewer
+ {
+ public WpfReportViewer()
+ {
+ InitializeComponent();
+ Pages = new PagesCollection();
+ }
+
+
+
+ public IDocumentPaginatorSource Document {
+ set {
+ this.DocumentViewer.Document = value;
+ }
+ }
+
+// public event EventHandler PreviewLayoutChanged;
+
+ public PagesCollection Pages {get;private set;}
+
+
+ public IReportViewerMessages Messages {
+ get {
+ throw new NotImplementedException();
+ }
+ set {
+ throw new NotImplementedException();
+ }
+ }
+
+ public void RunReport(string fileName, ReportParameters parameters)
+ {
+ if (String.IsNullOrEmpty(fileName)) {
+ throw new ArgumentNullException("fileName");
+ }
+ ReportModel model = ReportEngine.LoadReportModel(fileName);
+ this.RunReport(model, parameters);
+ }
+
+
+ public void RunReport(ReportModel reportModel, ReportParameters parameters)
+ {
+ if (reportModel == null) {
+ throw new ArgumentNullException("reportModel");
+ }
+ Pages.Clear();
+ if (reportModel.DataModel == GlobalEnums.PushPullModel.FormSheet)
+ {
+ RunFormSheet(reportModel);
+ } else {
+ ReportEngine.CheckForParameters(reportModel, parameters);
+ var dataManager = DataManagerFactory.CreateDataManager(reportModel, parameters);
+ RunReport(reportModel, dataManager);
+ }
+ }
+
+
+ public void RunReport(ReportModel reportModel, System.Data.DataTable dataTable, ReportParameters parameters)
+ {
+ if (reportModel == null) {
+ throw new ArgumentNullException("reportModel");
+ }
+ if (dataTable == null) {
+ throw new ArgumentNullException("dataTable");
+ }
+ ReportEngine.CheckForParameters(reportModel, parameters);
+ IDataManager dataManager = DataManagerFactory.CreateDataManager(reportModel, dataTable);
+ IReportCreator reportCreator = DataPageBuilder.CreateInstance(reportModel, dataManager);
+// reportCreator.SectionRendering += new EventHandler(PushPrinting);
+// reportCreator.GroupHeaderRendering += new EventHandler(GroupHeaderRendering);
+// reportCreator.GroupFooterRendering += GroupFooterRendering;
+//
+// reportCreator.RowRendering += new EventHandler(RowRendering);
+ reportCreator.PageCreated += OnPageCreated;
+ reportCreator.BuildExportList();
+ }
+
+
+ public void RunReport(ReportModel reportModel, System.Collections.IList dataSource, ReportParameters parameters)
+ {
+ if (reportModel == null) {
+ throw new ArgumentNullException("reportModel");
+ }
+ if (dataSource == null) {
+ throw new ArgumentNullException("dataSource");
+ }
+ ReportEngine.CheckForParameters(reportModel, parameters);
+ IDataManager dataManager = DataManagerFactory.CreateDataManager(reportModel, dataSource);
+
+ RunReport(reportModel, dataManager);
+ }
+
+ public void RunReport(ReportModel reportModel, IDataManager dataManager)
+ {
+ if (reportModel == null) {
+ throw new ArgumentNullException("reportModel");
+ }
+ if (dataManager == null) {
+ throw new ArgumentNullException("dataManager");
+ }
+// ReportEngine.CheckForParameters(reportModel, parameters);
+ IReportCreator reportCreator = DataPageBuilder.CreateInstance(reportModel, dataManager);
+ reportCreator.PageCreated += OnPageCreated;
+ reportCreator.BuildExportList();
+ }
+
+ private void RunFormSheet(ReportModel reportModel)
+ {
+ IReportCreator reportCreator = FormPageBuilder.CreateInstance(reportModel);
+// reportCreator.SectionRendering += new EventHandler(PushPrinting);
+ reportCreator.PageCreated += OnPageCreated;
+ reportCreator.BuildExportList();
+ }
+
+
+ private void OnPageCreated (object sender,PageCreatedEventArgs e)
+ {
+ Pages.Add(e.SinglePage);
+ }
+ }
+}
\ No newline at end of file