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; }
ContentCallbackRegistry GetCallbackRegistry() { if (contentCallbackRegistry == null) { contentCallbackRegistry = new ContentCallbackRegistry(GetContentIncludingAllViews); } return(contentCallbackRegistry); }
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; }