none
Boton en ItemTemplate no cambia SelectedItem en ListBox al presionar RRS feed

  • Pregunta

  • Hola estoy trabajando en un ListBox con databinding

    Utulizo un boton para efectuar una accion mediante el evento click parecido a esto

    private void Button_Click(object sender, RoutedEventArgs e)
            {
                var a = Lista.SelectedItem;
                ...
            }

    Pero me da null, ya que al presionar el boton no cambia el Item seleccionado de la lista (si primero oprimo en otro lado si se cambia y ya funciona, pero digamos que el usuario simpre presionaria el boton en primer lugar)

    Por lo cual lo he hecho con una Imagen con el Gesto Tap y funciona

    private void GestureListener_Tap(object sender, Microsoft.Phone.Controls.GestureEventArgs e)
            {
                var a = Lista.SelectedItem;
                ...
            }

    Pero como no hay cambio de contraste como en el boton. Por lo cual preferiria usar un boton.

    Alguien me podria ayudar. Gracias

    jueves, 28 de junio de 2012 1:52

Respuestas

  • Hola kokokolo.

    Tienes que sacar el Item de la lista a partir del contexto del botón.

    Yo he utilizado este código y funciona perfectamente.

                    MyModel varMyModel = (sender as Button).DataContext as MyModel;
                    ListBoxItem pressedItem = this.lstSearchResult.ItemContainerGenerator.ContainerFromItem(varMyModel) as ListBoxItem;
    

    Como puedes ver, yo tengo enlazado un modelo a la lista. Los pasos son:

    • Obtener el modelo desde el contexto del botón
    • En el contenedor de ítems de la lista buscamos el seleccionado


    "En los momentos de crisis, sólo la imaginación es más importante que el conocimiento"

    jueves, 28 de junio de 2012 10:09