From 0abb67b7483ffaab2d461017fbd78a5bbad25c91 Mon Sep 17 00:00:00 2001 From: Bebo-Maker Date: Wed, 23 Mar 2022 09:22:46 +0100 Subject: [PATCH] Unregister HotReload handler when window is closed --- QuestPDF.Previewer.Examples/Program.cs | 6 +++--- QuestPDF.Previewer/PreviewerWindow.axaml.cs | 13 ++++++++++--- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/QuestPDF.Previewer.Examples/Program.cs b/QuestPDF.Previewer.Examples/Program.cs index fb2d971..7e218a8 100644 --- a/QuestPDF.Previewer.Examples/Program.cs +++ b/QuestPDF.Previewer.Examples/Program.cs @@ -7,9 +7,9 @@ using QuestPDF.ReportSample; using QuestPDF.ReportSample.Layouts; using Colors = QuestPDF.Helpers.Colors; -// var model = DataSource.GetReport(); -// var report = new StandardReport(model); -// report.ShowInPreviewer(); +var model = DataSource.GetReport(); +var report = new StandardReport(model); +report.ShowInPreviewer(); Document .Create(container => diff --git a/QuestPDF.Previewer/PreviewerWindow.axaml.cs b/QuestPDF.Previewer/PreviewerWindow.axaml.cs index 27de11e..fa8a176 100644 --- a/QuestPDF.Previewer/PreviewerWindow.axaml.cs +++ b/QuestPDF.Previewer/PreviewerWindow.axaml.cs @@ -65,14 +65,16 @@ namespace QuestPDF.Previewer // .Click += (_, _) => _ = PreviewerUtils.SavePdfWithDialog(Document, this); DocumentProperty.Changed.Subscribe(v => Task.Run(() => DocumentRenderer.UpdateDocument(v.NewValue.Value))); - HotReloadManager.UpdateApplicationRequested += (_, _) => InvalidatePreview(); + HotReloadManager.UpdateApplicationRequested += InvalidatePreview; } - private void InitializeComponent() + protected override void OnClosed(EventArgs e) { - AvaloniaXamlLoader.Load(this); + HotReloadManager.UpdateApplicationRequested -= InvalidatePreview; + base.OnClosed(e); } + private void InvalidatePreview(object? sender, EventArgs e) => InvalidatePreview(); private void InvalidatePreview() { Dispatcher.UIThread.Post(() => @@ -81,5 +83,10 @@ namespace QuestPDF.Previewer _ = Task.Run(() => DocumentRenderer.UpdateDocument(document)); }); } + + private void InitializeComponent() + { + AvaloniaXamlLoader.Load(this); + } } }