Etiquetado: WP8

LongListSelector en Windows Phone

El primer paso de migración de nuestras aplicaciones de WP7 A WP8 es tan complicado como seleccionar Upgrade y apretar el botón de aceptar. Eso hará que la aplicación empiece a utilizar la potencia de WP8, pero todavía nos quedará algo de trabajo para refinar el cambio.
Uno bastante importante es el uso de listas, si queremos mejorar mucho nuestra aplicación tanto en rendimiento como en usabilidad es recomendable utilizar el control LongListSelector, es rápido y además permite la navegación en listas agrupadas por una cabecera:

LongListSelectorComo el control funciona exactamente igual que una ListBox e incluso que un ItemsControl nos bastará con sustituir un nombre por el otro y ya la tendremos en funcionamiento.
Podremos cambiar nuestro código:

 <ListBox ItemsSource="{Binding Items}">
     <ListBox.ItemTemplate>
         <DataTemplate>
            <!-- resto de nuestra plantilla -->
         </DataTemplate>
     </ListBox.ItemTemplate>
 </ListBox>

Por este otro y todo seguirá funcionando igual:

<phone:LongListSelector ItemsSource="{Binding Items}">
    <phone:LongListSelector.ItemTemplate>
        <DataTemplate>
           <!-- misma plantilla que antes -->
        </DataTemplate>
    </phone:LongListSelector.ItemTemplate>
</phone:LongListSelector>

Además de este control, en el mismo espacio de nombres encontraremos otros controles que podremos ir sustituyendo por los que teníamos de WP7 y así podremos quitar la referencia a la librería Microsoft.Phone.Controls que sólo se usa para mantener la compatibilidad de código con las aplicaciones antiguas.

Anuncios

Windows Phone Toolkit para Windows Phone 8 y problemas con Nuget

Un pequeño apunte. Hoy estaba migrando una de mis apps a Windows Phone 8, en una de estas aplicaciones estaba utilizando el Windows Phone Toolkit, pero al intentar instalar la nueva versión desde Nuget me ha dado el siguiente error:


PM> Install-Package WPToolkit
Successfully installed 'WPtoolkit 4.2012.10.30'.
Successfully uninstalled 'WPtoolkit 4.2012.10.30'.
Install failed. Rolling back...
Install-Package : Could not install package 'WPtoolkit 4.2012.10.30'. You are trying to install this package into a project that targets 'WindowsPhone,Version=v8.0',
but the package does not contain any assembly references that are compatible with that framework. For more information, contact the package author.
At line:1 char:1
+ Install-Package WPToolkit
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Install-Package], InvalidOperationException
+ FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.InstallPackageCommand

PM>

Me he ido a ver en la página del toolkit y ponía claramente que lo habían actualizado a WP8, así que el problema debía estar en otra parte… me faltaba actualizar el Nuget que viene con VS11, el SP1 no lo incluía. Una vez actualizado ya he podido actualizar el WPToolkit y ya funciona todo de nuevo :).