Posted 10 October 2017, 5:58 am EST
Does the C1ReportViewer control ever release memory after loading a document? If I run a memory diagnostic on the following code in a basic WPF application, I never see the C1ReportViewer objects destroyed (even when GC is forced). The PDF file that is loaded doesn’t seem to make any difference.
public partial class MainWindow : Window
{
Button loadButton = new Button() { Content = "Load" };
Button removeButton = new Button() { Content = "Remove" };
StackPanel panel = new StackPanel();
C1ReportViewer reportViewer;
public MainWindow()
{
InitializeComponent();
loadButton.Click += LoadButton_Click;
removeButton.Click += RemoveButton_Click;
panel.Children.Add(loadButton);
panel.Children.Add(removeButton);
rootGrid.Children.Add(panel);
}
private void LoadButton_Click(object sender, RoutedEventArgs e)
{
reportViewer = new C1ReportViewer();
reportViewer.LoadDocument(@"c:\result.pdf");
panel.Children.Add(reportViewer);
}
private void RemoveButton_Click(object sender, RoutedEventArgs e)
{
reportViewer.CloseDocument();
panel.Children.Remove(reportViewer);
reportViewer = null;
}
}