none
Recuperar datos de un gridview RRS feed

  • Pregunta

  • Bueno, tal vez esta sea una pregunta trivial, pero bueno, es la primera vez que hago este tipo de cosas en WPF, pues bien, tengo un listview, que tiene un gridview en el view del ListView. El gridview esta enlazado a un objecto-clr, de un servicio recupero una lista de objetos Persona, y en el Listview establezco la propiedad ItemsSource asignandole esta lista. Ahora, puse un CheckBox en mi CellTemplate, de tal modo que el usuario pueda seleccionar varios usuarios y una vez que se presione el boton, por ejemplo mostrar los detalles de dichas personas.

    Este es mi codigo:

        <ListView Name="lstPersonas" Canvas.Left="7" Canvas.Top="6" Height="158">
          <ListView.View>
            <GridView>
              <GridViewColumn Header="">
                <GridViewColumn.CellTemplate>
                  <DataTemplate>
                    <CheckBox />
                  </DataTemplate>
                </GridViewColumn.CellTemplate>
              </GridViewColumn>
              <GridViewColumn Header="Nombres" Width="120" DisplayMemberBinding="{Binding Nombres}" />
              
              <GridViewColumn Header="Apellidos" Width="120" DisplayMemberBinding="{Binding Apellidos}" />
              <GridViewColumn Header="Cedula" Width="120" DisplayMemberBinding="{Binding Cedula}" />
          </ListView.View>
        </ListView>
    
    <Button Name="btnVer" Content="Ver registro" Click="btnVer_Click" />
    


    Mi duda radica, en como puedo verificar que una  fila tiene el checkbox en Checked, y como recuperar el registro o algun identificador.

    La forma de hacer esto, es posible hacer mediante XAML? o desde el code-behind

     

    Gracias.


    Serg
    sábado, 6 de agosto de 2011 3:22

Todas las respuestas

  • Hola

    He trabajado antes esto y la forma que encuentro más fácil es crear una variable más en el Modelo, es decir una que se llame Checked y que sea del tipo bool y le harías un bind al checkbox, así cuando presiones el click del btnVer mirarías la variable del modelo y no el valor del checkbox.

    public class MiModelo
    {
      public string Nombre{get; set;}
      public string Apellido{get; set;}
      public double Cedula{get; set;}
      public bool Checked{get; set;}
    }
    
    En el xaml
    <GridViewColumn Header="">
          <GridViewColumn.CellTemplate>
           <DataTemplate>
            <CheckBox IsChecked="{Binding Checked}" />
           </DataTemplate>
          </GridViewColumn.CellTemplate>
         </GridViewColumn>

    Otra forma es recorrer los elementos hijos del gridview hasta encontrar el checkbox y validar su valor, yo se que en el foro hay un hilo con el código específico para esto pero no lo pude encontrar.

     

    Saludos


    Antonio Lobo
    Para el correcto funcionamiento, y que otros usuarios se puedan beneficiar de la solucion de esta pregunta por favor marca las respuestas que te hayan ayudado como "Respuesta".
    Si la respuesta te ha sido util Votala.
    Mi blog
    • Propuesto como respuesta Felipe Sotelo S domingo, 7 de agosto de 2011 23:31
    sábado, 6 de agosto de 2011 13:43