none
un evento se me ejecuta varias veces porque? RRS feed

  • Pregunta

  • hola, tengo una duda que es la siguiente

    desde Silverlight estoy invocando un servicio llamado consultarCategorias

    y la primera vez, lo ejecuta bien, sin problema alguno

    pero si lo vuelvo a ejecutar, sigue trabajando bien pero con la diferencia que el evento proxy_ConsultarCategoriasCompleted

    se ejecuta 2 veces, y sigue incrementando uno a uno es decir

    que si vuelvo a ejecutar ConsultarCategorias ahora el evento proxy_ConsultarCategoriasCompleted se ejecuta 3 veces

    la verdad no puedo entender porque pasa eso.

    me falta destruir algún objeto?

    gracias

     

     

     

     private void ConsultarCategorias()
      {
       // configura al evento que se ejecutará cuando el servicio haya sido completado
       proxy.ConsultarCategoriasCompleted += new EventHandler<ConsultarCategoriasCompletedEventArgs>(proxy_ConsultarCategoriasCompleted);
       //ejecuta el servicio
       proxy.ConsultarCategoriasAsync();
      }
    


     

     

     

     void proxy_ConsultarCategoriasCompleted(object sender, ConsultarCategoriasCompletedEventArgs e)
      {
       //crea una colección de tipo categorías
       _categorias = new List<Categorias>();
       //asigna el resultado a la lista
       _categorias = e.Result;
       //Si se coloca autogenerateColumns = true, marca error si se tiene un binding manual
       // se enlaza con el DataGrid
       Dg.ItemsSource = _categorias;
    
      }
    
    
    sábado, 23 de julio de 2011 23:07

Respuestas

  • Hola Omar:

     

    Cambia el metodo proxy_ConsultarCategoriasCompleted por lo siguiente:

     

     void proxy_ConsultarCategoriasCompleted(object sender, ConsultarCategoriasCompletedEventArgs e)
     {
      
      proxy.ConsultarCategoriasCompleted -= new EventHandler<ConsultarCategoriasCompletedEventArgs>(proxy_ConsultarCategoriasCompleted);
      //crea una colección de tipo categorías
      _categorias = new List<Categorias>();
      //asigna el resultado a la lista
      _categorias = e.Result;
      //Si se coloca autogenerateColumns = true, marca error si se tiene un binding manual
      // se enlaza con el DataGrid
      Dg.ItemsSource = _categorias;
    
     }


     

    Saludos,


    phurtado
    • Marcado como respuesta kakaroto2012 domingo, 24 de julio de 2011 17:03
    domingo, 24 de julio de 2011 9:00