none
Problema con una excepción Referencia a Objeto no Establecida como instancia de un objeto RRS feed

  • Pregunta

  •  Hola! Tengo un problema con una excepción que no se porque me aparece estoy seleccionando un dato proveniente de un datagrid en WPF, pero me aparece esa excepción como si el dato fuera nulo o no este declarado, no entiendo el porque este es mi código 

    De antemano gracias por la ayuda!

     private void dgv_Cells(object sender, SelectionChangedEventArgs e)
            {
                try
                {
                   var cliente = (Datos)dgv.SelectedItem;

                        double Latitud = cliente.Latitud;
                        double Longitud = cliente.Longitud;
                        string nombre = cliente.Cliente; 

                       }

              catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString());
                }

            public class Datos
            {
                public int ID { get; set; }
                public string Cliente { get; set; }
                public string Direccion { get; set; }
                public double Latitud { get; set; }
                public double Longitud { get; set; }
            }



    • Editado DanDuarteM miércoles, 14 de abril de 2021 19:53
    miércoles, 14 de abril de 2021 19:52

Respuestas

  • Usa el debugger y pon un punto de ruptura a la entrada del dgv_cells. Cuando se pare, examina el valor del SelectedItem. Sospecho que te encontrarás con que vale null (es decir, el dgv considera que no hay ningún item seleccionado) y por eso te da un error al acceder a las propiedades de cliente.
    • Marcado como respuesta DanDuarteM domingo, 18 de abril de 2021 12:49
    jueves, 15 de abril de 2021 6:16

Todas las respuestas

  • Hola,

    Gracias por levantar tu consulta en los foros de MSDN.

    Eric Ruiz

    ____________________________

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.

    Si tiene algún cumplido o reclamo sobre el soporte de MSDN siéntase en la libertad de contactar MSDNFSF@microsoft.com.

    miércoles, 14 de abril de 2021 23:12
    Moderador
  • Usa el debugger y pon un punto de ruptura a la entrada del dgv_cells. Cuando se pare, examina el valor del SelectedItem. Sospecho que te encontrarás con que vale null (es decir, el dgv considera que no hay ningún item seleccionado) y por eso te da un error al acceder a las propiedades de cliente.
    • Marcado como respuesta DanDuarteM domingo, 18 de abril de 2021 12:49
    jueves, 15 de abril de 2021 6:16
  • Hola! Intente lo que me recomendaste cuando coloque el punto de interrupcion, y posicione el mouse sobre la variable clientes el valor no viene nulo, pero si dejo correr el programa el valor si viene nulo y me genera la excepcion no comprendo el porque

    jueves, 15 de abril de 2021 15:03
  • si dejo correr el programa el valor si viene nulo y me genera la excepcion no comprendo el porque

    Probablemente porque la subrutina la tienes conectada al evento SelectionChanged, y este evento se dispara cada vez que cambia la selección, incluso cuando cambia de "hay algo seleccionado" a "no se ha seleccionado nada". Lo más sencillo para tratar este caso es meter un "if" que compruebe si la selección es null:

    var cliente = (Datos)dgv.SelectedItem;
    if (cliente != null)
    {
        double Latitud = cliente.Latitud;
        double Longitud = cliente.Longitud;
        string nombre = cliente.Cliente;
        // etc etc
    }

    domingo, 18 de abril de 2021 13:32