lunes, 26 de noviembre de 2012

Como rellenar un GridView en WPF siguiendo MVVM - II

En el artículo anterior describí a grosso modo todo lo que necesitaba para poder rellenar un GridView en WPF, desde la base de datos, siguiendo el patrón MVVM. Bueno, realmente aún me falta implementar el locator para quitar del todo el código en el codebehind del xaml.cs.

Pero ahora me voy a centrar en la Vista y cómo obtener un GridView (como los de ASP.NET) o “Grilla” (como dicen los compañeros latinoamericanos) con contenido.

Para ello primero utilizo un ListView, dentro del cual defino una vista, y dentro de esta vista un GridView.

<ListView Name="ViewClientes">
     <ListView.View>
                <
GridView>
                    <
GridViewColumn Header="Idcliente" />
                    <
GridViewColumn Header="Nombre" />
                    <
GridViewColumn Header="Apellidos" />
                </
GridView>
       </
ListView.View>
   </
ListView>

Si lanzamos nuestro código obtendremos un GridView vacio, pero con los encabezados. Para recuperar los datos lo primero es decirle al ListView que debe de mostrar, teniendo en cuenta que ya enlazamos en el artículo anterior el Datacontext de la Vista.

<ListView Name="ViewClientes"Margin="50,50,50,0"ItemsSource="{Binding ListadoClientes}">

Fíjate que le estoy diciendo que utilice la propiedad pública ListadoClientes de la clase del ViewModel PantallaClientes. Y como esta propiedad es un List<Cliente> pues ya puedo definir en las columnas del GridView que campo quiero que muestre.

<ListView Name="ViewClientes" ItemsSource="{Binding ListadoClientes}">
<
ListView.View>
  <
GridView>
    <
GridViewColumn Header="Idcliente" DisplayMemberBinding="{Binding IdCliente}" />
    <
GridViewColumn Header="Nombre" DisplayMemberBinding="{Binding Nombre}" />
    <
GridViewColumn Header="Apellidos" DisplayMemberBinding="{Binding Apellidos}" />
  </
GridView>
</
ListView.View>
</
ListView>

 
 

Y con esto ya está funcionando!!

No hay comentarios: