I have a Crystal Reports 13 wpf control that I'm loading with a report and data from a dataset:
ReportDocument report = new ReportDocument();
if (report != null)
{
report.Load(ReportFileName);
report.SetDataSource(DataSet);
reportViewer.ViewerCore.ReportSource = report;
}
What event can I handle in order to know when the control is done rendering? The viewer exports:
public event PageMouseEventHandler ClickPage;
public event PageMouseEventHandler DoubleClickPage;
public event DrillEventHandler Drill;
public event DrillSubreportEventHandler DrillDownSubreport;
public event NavigateEventHandler Navigate;
public event RefreshEventHandler Refresh;
public event SearchEventHandler Search;
public event RoutedEventHandler SelectionChange;
public event RoutedEventHandler ViewChange;
public event ZoomEventHandler ViewZoom;
and ViewerCore only exports:
public event ExceptionEventHandler Error;
None of these seem plausible. I've briefly played with the ReportClientDocument as well.
For posterity:
DependencyPropertyDescriptor p = DependencyPropertyDescriptor.FromProperty(SAPBusinessObjects.WPF.Viewer.ViewerCore.TotalPageNumberProperty, typeof(SAPBusinessObjects.WPF.Viewer.ViewerCore));
p.AddValueChanged(reportViewer.ViewerCore, OnPageCountChanged);
Since the TotalPageNumber property is correctly updated after that page is rendered...
private void OnPageCountChanged(object sender, EventArgs e)
{
//do whats needed
}
You know when the control is done rendering.