Como la mayoría de los desarrolladores el sentido del diseño lo tuve aparcado durante algún tiempo, pero a medida que te involucras en los desarrollos, y sobre todo cuando estas cerca del cliente de das cuenta que una buena funcionalidad no lo es todo, el cliente/usuario final, no tiene porque comprender la complejidad de un desarrollo y posiblemente no sepa valorarla, en cambio una interfaz de usuario atractiva cambia las cosas, algunas de las principales novedades respecto a tecnología móvil en estos últimos tiempos ha ido principalmente en esa dirección, creando nuevos medios de interacción con el usuario, como pueden ser los acelerometros, o interfaces de usuario atractivas como el Touch flow de htc… pero eso lo estoy dejando para un post posterior.
Este fin de semana rastreando por la msdn e recopilado unos cuantos métodos para crear un control Listview personalizado para Compact Framework.
Curiosamente todas las funcionalidades que vamos a utilizar para la creación de este control YA están contenidas en el mismo de forma nativa, pero por algún motivo que aún no he descubierto, estas propiedades no están accesibles en el control desde código manejado, por lo que únicamente tendremos que enviar los mensajes necesarios para activar las funcionalidades que deseemos y obtener un resultado como el de la imagen… (insisto… no soy diseñador jeje)

Para poder crear nuestro propio control listView crearemos un control personalizado que herede del control ListView y a continuación declararemos la funciones que harán las llamadas a nativo, para esto tan solo necesitamos la invocación a SendMessage (Manejado , Nativo)
Una vez agregada la llamada declararemos las propiedades que extenderán nuestro control Gradient, GridLines, BackgroundImage y DoubleBuffering éstas funciones hacen relación con las constantes LVS_EX_GRADIENT, LVS_EX_GRIDLINES, LVM_SETBKIMAGE y LVS_EX_DOUBLEBUFFER respectivamente. Si queréis ver todas las posibilidades visitar este enlace.
Como no soy muy dado a andarme por las ramas aquí os dejo un ejemplo con el código fuente del control y la aplicación de ejemplo, lo único destacar lo siguiente, he buscado los ejemplos para mostrar como utilizar la funcionalidad bien mediante p/invoke o bien mediante MessageWindow.SendMessage desde el espacio de nombres Microsoft.WindowsCE.Forms.
MobileNug.Controles.ListviewEx.zip
Un saludo a todos y espero que os sea útil, por su puesto si lo ampliáis seria fantástico que lo compartáis. Esto mismo se puede hacer con otros controles. Así que adelante.
José Antonio Gallego
Muy bueno tio!! Si no te importa lo enlazo desde desarrolloMobile.NET.,,,,
Un abrazote!!!
Que tal amigo muy interesante post, pero creo que hay un problema con el link al ejemplo si pudieras revisarlo, gracias por tu aporte.
Ccs.Vnzla
Ups, ya esta solucionado, el problema fue que pusieron el servidor en mantenimiento y no me avisaron. Ya esta funcionando.
Holas doc soy nuevo en esto y me baje tu ejemplo pero no abre sale un error no carga el proyecto si pudieras revisarlo seria execelente buen dia!!!..o si me lo puedes pasar a dantero777@hotmail.com te lo agradeceria gracias!!!
@Daniel. ¿Que versión de Visual Studio utilizas? y ¿Que SDK de WM tienes instalado?
Estoy Usando el 2008 y la version del sdk creo que es Microsoft Windows SDK v6.0A…
@Daniel, el codigo fuente completo esta en mobilenug.com… si te da algún tipo de error postealo en el foro de Compact Framework, de todos modos hay un hilo sobre el ListView en ese foro que creo que lo arreglara. El problema es por la referencia a Microsoft.Windowsce.Forms.
Hola que tal añadi el proyecto a mi solucion y cuando intento usar el listview pero no guarda cambios cuando añado elementos al control alguna sigerencia?
Hola de nuevo yo, despues de un tiempo ya vi cual es el problema, pense que tambien podria añadir el control en un Windows Mobile Standar, pero aparentemente ahi esta la falla… yo lo checo
Gracais