void MenuItemPopup(object sender, EventArgs e) { var menuItem = (MenuItem)sender; var connection = _connections.FirstOrDefault(c => c.Name == menuItem.Name); bool isConnected = false; try { isConnected = _connector.CheckConnection(connection); } catch (Exception ex) { Logger.ErrorException(string.Format("Error was handled while chacking connection '{0}'", menuItem.Name), ex); } var connectItem = menuItem.MenuItems.Find(ConnectItemName, false).SingleOrDefault(); if (connectItem != null) { connectItem.Enabled = !isConnected; } var disconnectItem = menuItem.MenuItems.Find(DisconnectItemName, false).SingleOrDefault(); if (disconnectItem != null) { disconnectItem.Enabled = isConnected; } }