void Dispose() { DocumentRegistry.Remove(this); callbackRegistration?.Dispose(); var workspace = Runtime.PeekService <RootWorkspace> (); if (workspace != null) { workspace.ItemRemovedFromSolution -= OnEntryRemoved; } UnsubscribeControllerEvents(); if (view != null) { view.ActiveViewInHierarchyChanged -= ActiveViewInHierarchyChanged; view.IsRoot = false; view.Dispose(); // This will also dispose the controller } window.CloseRequested -= Window_CloseRequested; window = null; contentCallbackRegistry = null; contentActiveViewCallbackRegistry = null; }
internal void Dispose() { DocumentRegistry.Remove(this); callbackRegistration?.Dispose(); var workspace = Runtime.PeekService <RootWorkspace> (); if (workspace != null) { workspace.ItemRemovedFromSolution -= OnEntryRemoved; } UnsubscribeControllerEvents(); window.SetRootView(null); view.IsRoot = false; view.Dispose(); // This will also dispose the controller window = null; contentCallbackRegistry = null; contentActiveViewCallbackRegistry = null; }