Exemple #1
0
 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);
         }
     }
 }
Exemple #2
0
 internal void CloseAllTabs()
 {
     foreach (var doc in TabPages.ToArray())
     {
         if (doc.IsCloseable)
         {
             TabPages.Remove(doc);
         }
     }
 }