Alessandro Del Sole's Blog

{ A programming space about Microsoft® .NET® }
posts - 1908, comments - 2047, trackbacks - 352

My Links

News

Your host

This is me! Questo spazio è dedicato a Microsoft® .NET®, di cui sono molto appassionato :-)

Cookie e Privacy

Disabilita cookie ShinyStat

Microsoft MVP

My MVP Profile

Microsoft Certified Professional

Microsoft Specialist

Xamarin Certified Mobile Developer

Il mio libro su VB 2015!

Pre-ordina il mio libro su VB 2015 Pre-ordina il mio libro "Visual Basic 2015 Unleashed". Clicca sulla copertina per informazioni!

Il mio libro su WPF 4.5.1!

Clicca sulla copertina per informazioni! E' uscito il mio libro "Programmare con WPF 4.5.1". Clicca sulla copertina per informazioni!

These postings are provided 'AS IS' for entertainment purposes only with absolutely no warranty expressed or implied and confer no rights.
If you're not an Italian user, please visit my English blog

Le vostre visite

I'm a VB!

Guarda la mia intervista a Seattle

Follow me on Twitter!

Altri spazi

GitHub
I miei progetti open-source su GitHub

Article Categories

Archives

Post Categories

Image Galleries

Privacy Policy

WinRT: come risolvere se GridView e ListView perdono la direzione

In un'app per Windows 8 che ho appena inviato allo Store per la certificazione mi sono imbattuto in un problema, al quale ho dovuto apportare una soluzione non proprio ortodossa per i miei gusti, ma che è stata la migliore possibile.

Si tratta di un problema che può capitare con i controlli GridView e ListView e sottolineo può, nel senso che non necessariamente capita ogni volta che si usano, anzi. Con molta probabilità dipende dal tipo di DataTemplate che usate. Solo che, se dovesse capitarvi, dovete sapere come tentare di risolverlo.

Nel mio scenario, su una pagina ho una GridView:

                <GridView Name="MyView" ItemsSource="{Binding}" Margin="0,15,0,0" HorizontalAlignment="Left">
                    <GridView.ItemTemplate>
                        <DataTemplate>
                            <!-- custom DataTemplate -->
                        </DataTemplate>
                    </GridView.ItemTemplate>
                </GridView>

Da questa pagina in cui c'è quest'oggetto, effettuo la navigazione a una nuova pagina. Da quest'ultima, torno indietro alla pagina in cui c'è la GridView.

Risultato: invece di mostrarmi gli elementi orizzontalmente, come richiesto, il controllo me li mostra in verticale perdendo l'allineamento.

Faccio una ricerca su Internet e l'unico che parla di questo problema è un signore di Microsoft, che offre una soluzione nel suo blog a questo indirizzo. Sfortunatamente la soluzione proposta non ha risolto il mio problema, quindi quello che ho fatto è stato ridefinire il template del pannello di visualizzazione utilizzando uno StackPanel. Questo va bene per me perché ho pochi elementi da visualizzare, quindi non è necessario virtualizzare. In codice:

                    <GridView.ItemsPanel>
                        <ItemsPanelTemplate>
                            <StackPanel Orientation="Horizontal"/>
                        </ItemsPanelTemplate>
                    </GridView.ItemsPanel>

In questo modo il tutto è tornato a funzionare a dovere. Se doveste capitarvi, quindi, provate a intervenire sull'ItemsPanelTemplate.

Alessandro

Print | posted on martedì 12 marzo 2013 13:44 | Filed Under [ UWP e Windows Store Apps ]

Powered by:
Powered By Subtext Powered By ASP.NET