private void EnMenúCambiarTipo(object elObjecto, EventArgs losArgumentos) { // Retornamos si no hay PDIs. if (Lista.SelectedIndices.Count == 0) { return; } List <PDI> pdis = new List <PDI>(); foreach (int indice in Lista.SelectedIndices) { ListViewItem item = Lista.Items[indice]; // El Tag del item de la lista tiene que ser un PDI. PDI pdi = item.Tag as PDI; if (pdi == null) { throw new InvalidOperationException("El Tag del item de la lista tiene que ser un PDI, pero es nulo."); } // Añade el PDI a la lista. pdis.Add(pdi); } // Muestra la ventana para cambiar el Tipo. VentanaCambiarTipoDePDI ventanaCambiarTipo = new VentanaCambiarTipoDePDI(); ventanaCambiarTipo.PDIs = pdis; DialogResult resultado = ventanaCambiarTipo.ShowDialog(); if (resultado == DialogResult.OK) { // Cambia los tipos evitando que se generen eventos con // cada cambio. ManejadorDePDIs.SuspendeEventos(); foreach (PDI pdi in pdis) { pdi.CambiaTipo(ventanaCambiarTipo.TipoNuevo, "Cambio Manual"); } // Restablece los eventos en el manejador de mapa. ManejadorDePDIs.RestableceEventos(); // Envía el evento indicando que se editaron PDIs. EnvíaEventoEditó(); } }
private void EnMenúCambiarTipo(object elObjecto, EventArgs losArgumentos) { // Retornamos si no hay PDIs. if (Lista.SelectedIndices.Count == 0) { return; } List<PDI> pdis = new List<PDI>(); foreach (int indice in Lista.SelectedIndices) { ListViewItem item = Lista.Items[indice]; // El Tag del item de la lista tiene que ser un PDI. PDI pdi = item.Tag as PDI; if (pdi == null) { throw new InvalidOperationException("El Tag del item de la lista tiene que ser un PDI, pero es nulo."); } // Añade el PDI a la lista. pdis.Add(pdi); } // Muestra la ventana para cambiar el Tipo. VentanaCambiarTipoDePDI ventanaCambiarTipo = new VentanaCambiarTipoDePDI(); ventanaCambiarTipo.PDIs = pdis; DialogResult resultado = ventanaCambiarTipo.ShowDialog(); if (resultado == DialogResult.OK) { // Cambia los tipos evitando que se generen eventos con // cada cambio. ManejadorDePDIs.SuspendeEventos(); foreach (PDI pdi in pdis) { pdi.CambiaTipo(ventanaCambiarTipo.TipoNuevo, "Cambio Manual"); } // Restablece los eventos en el manejador de mapa. ManejadorDePDIs.RestableceEventos(); // Envía el evento indicando que se editaron PDIs. EnvíaEventoEditó(); } }