From 6a834a351366d1a49b29b7ae23e33cc19591733a Mon Sep 17 00:00:00 2001 From: pinzart90 Date: Tue, 20 Feb 2024 11:09:47 -0500 Subject: [PATCH] update --- .../GraphNodeManagerView.xaml.cs | 21 ++++++++++++++++++- .../GraphNodeManagerViewExtension.cs | 2 +- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/GraphNodeManagerViewExtension/GraphNodeManagerView.xaml.cs b/src/GraphNodeManagerViewExtension/GraphNodeManagerView.xaml.cs index fdcdbea0d60..e3efc6edaaa 100644 --- a/src/GraphNodeManagerViewExtension/GraphNodeManagerView.xaml.cs +++ b/src/GraphNodeManagerViewExtension/GraphNodeManagerView.xaml.cs @@ -1,3 +1,4 @@ +using System; using System.ComponentModel; using System.Linq; using System.Windows; @@ -11,7 +12,7 @@ namespace Dynamo.GraphNodeManager /// /// Interaction logic for GraphNodeManagerView.xaml /// - public partial class GraphNodeManagerView : UserControl + public partial class GraphNodeManagerView : UserControl, IDisposable { /// /// A persistent handle of the currently selected row @@ -29,6 +30,7 @@ public partial class GraphNodeManagerView : UserControl private bool mouseHandled = false; private GraphNodeManagerViewModel viewModel; + private bool disposedValue; /// /// Constructor @@ -154,5 +156,22 @@ private void ExportButton_OnClick(object sender, RoutedEventArgs e) e.Handled = true; } + protected virtual void Dispose(bool disposing) + { + if (!disposedValue) + { + viewModel.PropertyChanged -= ViewModel_OnPropertyChanged; + viewModel.RequestExportGraph -= ViewModel_RequestExportGraph; + + disposedValue = true; + } + } + + public void Dispose() + { + // Do not change this code. Put cleanup code in 'Dispose(bool disposing)' method + Dispose(disposing: true); + GC.SuppressFinalize(this); + } } } diff --git a/src/GraphNodeManagerViewExtension/GraphNodeManagerViewExtension.cs b/src/GraphNodeManagerViewExtension/GraphNodeManagerViewExtension.cs index 645f3b5dc45..e56296b8106 100644 --- a/src/GraphNodeManagerViewExtension/GraphNodeManagerViewExtension.cs +++ b/src/GraphNodeManagerViewExtension/GraphNodeManagerViewExtension.cs @@ -72,7 +72,6 @@ private void MenuItemCheckHandler(object sender, RoutedEventArgs e) /// private void MenuItemUnCheckedHandler(object sender, RoutedEventArgs e) { - this.Dispose(); viewLoadedParamsReference.CloseExtensioninInSideBar(this); } @@ -110,6 +109,7 @@ public override void Shutdown() /// public override void Dispose() { + this.ManagerView?.Dispose(); this.ViewModel?.Dispose(); this.ManagerView = null; this.ViewModel = null;