none
Eventos de un control de usuario, ¡dentro de un ListView! RRS feed

  • Pregunta

  • Tengo dos asuntos:

    1.- Me he creado un control de usuario con sus respectivos eventos personalizados; ya en mi proyecto a trabajar lo he metido como items dentro de un ListView (es decir que la cantidad de objetos de mi control será variado)... el asunto es el siguiente: ¿cómo 'declaro' y 'disparo' tales eventos de mi control contenidos dentro del ListView? / Es un gran lío, un asunto algo complejo, ¿puede alguien ayudarme? No uso ItemsSource sino foreach (por algunas operaciones que tengo que realizar antes de pasarlo como item a la lista, y porque aún no le agarro bien del todo al asunto del MVVM).

    2.- Abusando de la oportunidad, no hallo cómo se crea e 'instancía (+=)' el evento Tapped para mi control. Por favor, si alguien sabe y pudiera decirme cómo es, lo agradecería mucho.

    C#, Windows Phone 8.1


    • Editado Erich Yair sábado, 4 de octubre de 2014 5:37
    sábado, 4 de octubre de 2014 5:34

Respuestas

  • Hola Erich, puedes generar el evento del control dentro del ListView y obtener el control específico desde el evento mismo:

    TuControl cnt = sender as TuControl();
    if (cnt!=null)
    {
        //Haz lo que desees aqui.
    }

    Para el segundo punto debería ser así:

    TuControl.Tap += (s,args) =>
    {
        //args es del tipo GestureEventArgs
        //Aqui colocas el codigo correspondiente.
    };

    Espero sea de utilidad.

    Saludos.


    Christian Amado
    Software Engineer | MCPD: Windows Phone Developer | MCTS: Silverlight Developer
    Don't forget to mark the right answer and vote up if helps you.
    MCP Profile

    lunes, 6 de octubre de 2014 19:42

Todas las respuestas

  • Hola Erich, puedes generar el evento del control dentro del ListView y obtener el control específico desde el evento mismo:

    TuControl cnt = sender as TuControl();
    if (cnt!=null)
    {
        //Haz lo que desees aqui.
    }

    Para el segundo punto debería ser así:

    TuControl.Tap += (s,args) =>
    {
        //args es del tipo GestureEventArgs
        //Aqui colocas el codigo correspondiente.
    };

    Espero sea de utilidad.

    Saludos.


    Christian Amado
    Software Engineer | MCPD: Windows Phone Developer | MCTS: Silverlight Developer
    Don't forget to mark the right answer and vote up if helps you.
    MCP Profile

    lunes, 6 de octubre de 2014 19:42
  • Hola Christian! Primeramente te agradezco la ayuda; me parece que esta es la segunda vez que lo has hecho para conmigo, muchas gracias. ^^

    Ahora bien, no he podido hacerme del evento Tapped. ¿Pudieras guiarme? En mi código lo tengo de la siguiente manera:

    En mi UserControl, fuera del constructor:

    public delegate void TappedEventHandler(object sender, TappedRoutedEventArgs e);
    

    Dentro del constructor:

    TextBlockItemClick.Tapped += new TappedEventHandler(TextBlockItemClick_Tapped);

    (en esta parte me marca error, "No se puede convertir implícitamente el tipo '[MiNameSpace].TappedEventHandler' en 'Windows.UI.Xaml.Input.TappedEventHandler'")

    Y ya por último tengo esto:

    private void TextBlockItemClick_Tapped(object sender, TappedRoutedEventArgs e)
    {
    // Acá qué pongo ??? lol
    }

    De antemano nuevamente te agradezco, y disculpa no haber sido yo quien marcara tu respuesta como la respuesta... es solo que tiré mi UserControl al ver que no podía y ya cuando respondiste ya no lo tenía para checarlo y ya no quise volver a elaborarlo :$ Pero acá esta de nuevo, Jéje. Un saludo! Quedo en espera. Excelente día. :)

    martes, 14 de octubre de 2014 3:18
  • Hola Erich, ¿por qué creas un delegado directamente puedes hacer esto:

    TextBlockItemClick_Tap(object sender, GestureEventArgs)
    {
        //Aqui va el codigo que necesitas...
    }
    Saludos


    Christian Amado
    Software Engineer | MCPD: Windows Phone Developer | MCTS: Silverlight Developer
    Don't forget to mark the right answer and vote up if helps you.
    MCP Profile

    miércoles, 15 de octubre de 2014 12:45