private Dictionary <XenAPI.Network, List <NetworkingPropertiesPage> > MakeProposedInUseMap()
        {
            Dictionary <XenAPI.Network, List <NetworkingPropertiesPage> > inusemap =
                new Dictionary <XenAPI.Network, List <NetworkingPropertiesPage> >();

            foreach (NetworkingPropertiesPage page in verticalTabs.Items)
            {
                XenAPI.Network network = (XenAPI.Network)page.NetworkComboBox.SelectedItem;

                if (network == null)
                {
                    PIF pif = page.Tag as PIF;
                    if (pif == null)
                    {
                        continue;
                    }
                    network = pif.Connection.Resolve(pif.network);
                    if (network == null)
                    {
                        continue;
                    }
                }

                if (network.PIFs.Count == 0)
                {
                    continue;
                }

                if (!inusemap.ContainsKey(network))
                {
                    inusemap[network] = new List <NetworkingPropertiesPage>();
                }
                inusemap[network].Add(page);
            }

            foreach (XenAPI.Network network in connection.Cache.Networks)
            {
                if (network.Show(Properties.Settings.Default.ShowHiddenVMs))
                {
                    if (connection.ResolveAll(network.PIFs).Find(p => !p.IsTunnelAccessPIF()) == null)  // no PIFs, or all the PIFs are tunnel access PIFs so the network is a CHIN
                    {
                        continue;
                    }
                    PIF pif = FindPIFForThisHost(network.PIFs);
                    if (pif != null && pif.IsInUseBondSlave())
                    {
                        continue;
                    }
                    if (!inusemap.ContainsKey(network))
                    {
                        inusemap[network] = null;
                    }
                }
            }

            return(inusemap);
        }