diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/WPF/WPFReportPreview.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/WPF/WPFReportPreview.cs index 7b65e54462..49ddb8347a 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/WPF/WPFReportPreview.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/WPF/WPFReportPreview.cs @@ -25,7 +25,7 @@ namespace ICSharpCode.Reports.Addin.Project.WPF ReportDesignerLoader designerLoader; IWpfReportViewer viewer = new WpfReportViewer(); - IPreviewModel viewmodel = new PreviewModel(); + IPreviewModel exportRunner = new ExportRunner(); public WPFReportPreview(ReportDesignerLoader loader,IViewContent content):base(content) { @@ -47,11 +47,11 @@ namespace ICSharpCode.Reports.Addin.Project.WPF switch (model.DataModel) { case GlobalEnums.PushPullModel.FormSheet : { - viewmodel.RunReport(model,(ReportParameters)null); + exportRunner.RunReport(model,(ReportParameters)null); break; } case GlobalEnums.PushPullModel.PullData:{ - viewmodel.RunReport(model,(ReportParameters)null); + exportRunner.RunReport(model,(ReportParameters)null); break; } case GlobalEnums.PushPullModel.PushData: @@ -59,19 +59,16 @@ namespace ICSharpCode.Reports.Addin.Project.WPF var cmd = new DataSetFromXsdCommand(); cmd.Run(); System.Data.DataSet ds = cmd.DataSet; - viewmodel.RunReport(model,ds.Tables[0],(ReportParameters)null); + exportRunner.RunReport(model,ds.Tables[0],(ReportParameters)null); break; } default: throw new InvalidReportModelException(); } - FixedDocumentRenderer renderer = FixedDocumentRenderer.CreateInstance(model.ReportSettings,viewmodel.Pages); - - renderer.Start(); - renderer.RenderOutput(); - renderer.End(); - viewer.Document = renderer.Document; + PreviewViewModel pvm = new PreviewViewModel (model.ReportSettings,exportRunner.Pages); + //viewer.Document = pvm.Document; + viewer.SetBinding(pvm); } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/ICSharpCode.Reports.Core.csproj b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/ICSharpCode.Reports.Core.csproj index 7bb12dee2c..e9df2410ab 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/ICSharpCode.Reports.Core.csproj +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/ICSharpCode.Reports.Core.csproj @@ -367,11 +367,12 @@ ReportViewer.cs + WpfReportViewer.xaml Code - + diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/WpfReportViewer/PreviewModel.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/WpfReportViewer/ExportRunner.cs similarity index 98% rename from src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/WpfReportViewer/PreviewModel.cs rename to src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/WpfReportViewer/ExportRunner.cs index 43e609d768..4680482262 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/WpfReportViewer/PreviewModel.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/WpfReportViewer/ExportRunner.cs @@ -16,9 +16,9 @@ namespace ICSharpCode.Reports.Core.WpfReportViewer /// /// Description of WpfReportViewModel. /// - public class PreviewModel:IPreviewModel + public class ExportRunner:IPreviewModel { - public PreviewModel() + public ExportRunner() { Pages = new PagesCollection(); } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/WpfReportViewer/PreviewViewModel.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/WpfReportViewer/PreviewViewModel.cs new file mode 100644 index 0000000000..4537b98e60 --- /dev/null +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/WpfReportViewer/PreviewViewModel.cs @@ -0,0 +1,63 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 08.06.2011 + * Time: 19:41 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.ComponentModel; +using System.Windows.Documents; + +using ICSharpCode.Reports.Core.Exporter.ExportRenderer; + +namespace ICSharpCode.Reports.Core.WpfReportViewer +{ + /// + /// Description of PreviewViewModel. + /// + public class PreviewViewModel:INotifyPropertyChanged + { + + private IDocumentPaginatorSource document; + + public PreviewViewModel(ReportSettings reportSettings, PagesCollection pages) + { + this.Pages = pages; + FixedDocumentRenderer renderer = FixedDocumentRenderer.CreateInstance(reportSettings,Pages); + + renderer.Start(); + renderer.RenderOutput(); + renderer.End(); + OnNotifyPropertyChanged("Pages"); + this.Document = renderer.Document; + + } + + + public PagesCollection Pages {get;private set;} + + + public IDocumentPaginatorSource Document + { + get {return document;} + set { + this.document = value; + OnNotifyPropertyChanged ("Document"); + } + + + } + + + public event PropertyChangedEventHandler PropertyChanged; + + void OnNotifyPropertyChanged(string num0) + { + if (PropertyChanged != null) { + PropertyChanged(this,new PropertyChangedEventArgs(num0)); + } + } + } +} diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/WpfReportViewer/WpfReportViewer.xaml b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/WpfReportViewer/WpfReportViewer.xaml index 11128612d6..7672ac7e6c 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/WpfReportViewer/WpfReportViewer.xaml +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/WpfReportViewer/WpfReportViewer.xaml @@ -1,12 +1,17 @@  + x:Class="ICSharpCode.Reports.Core.WpfReportViewer.WpfReportViewer" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> + - + VerticalAlignment="Stretch"> + \ No newline at end of file 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 index 69755aac91..4ee40f8fc9 100644 --- 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 @@ -8,6 +8,7 @@ */ using System; using System.Collections.Generic; +using System.ComponentModel; using System.Text; using System.Windows; using System.Windows.Controls; @@ -26,6 +27,7 @@ namespace ICSharpCode.Reports.Core.WpfReportViewer public interface IWpfReportViewer { IDocumentPaginatorSource Document {set;} + void SetBinding (PreviewViewModel model); } /// /// Interaction logic for WpfReportViewer.xaml @@ -38,12 +40,16 @@ namespace ICSharpCode.Reports.Core.WpfReportViewer InitializeComponent(); } + public void SetBinding (PreviewViewModel model) + { + this.DataContext = model; + } + public IDocumentPaginatorSource Document { set { this.DocumentViewer.Document = value; } } - } } \ No newline at end of file