private void MainWindow_Instance_CurrentAssemblyListChanged(object sender, NotifyCollectionChangedEventArgs e) { if (e.OldItems == null) { return; } foreach (var tab in TabPages.ToArray()) { var state = tab.GetState(); if (state == null || state.DecompiledNodes == null) { continue; } bool found = false; foreach (var node in state.DecompiledNodes) { var assemblyNode = node.Ancestors().OfType <TreeNodes.AssemblyTreeNode>().LastOrDefault(); if (assemblyNode != null && !e.OldItems.Contains(assemblyNode.LoadedAssembly)) { found = true; break; } } if (!found && TabPages.Count > 1) { TabPages.Remove(tab); } } }
internal void CloseAllTabs() { foreach (var doc in TabPages.ToArray()) { if (doc.IsCloseable) { TabPages.Remove(doc); } } }