2012-02-01 5 views
13

Mi piace l'idea ma sono un po 'perso per Windows Phone 7 quando voglio utilizzare un controllo Panorama e/o Pivot. L'unica vista fornita è la visualizzazione Pagina. Quindi navigare da una pagina all'altra funziona alla grande! Ma ora voglio un pivot o un panorama. Fondamentalmente potrei creare un nuovo controller per questa vista, ma ottengo le "pagine" all'interno dei controlli. La navigazione naviga davvero verso di essa, ma non all'interno di Pivot/Panorama.Utilizzo di Monocross su Windows Phone 7 con controllo Panorama e/o Pivot

Per i campioni Monotouch e MonoDroid è stato preparato come eseguire questa operazione (in pratica è stato creato un nuovo viewcontroller). Ma il WP7 è stato lasciato indietro.

Chiunque?

risposta

1

Sto anche facendo lo sviluppo multipiattaforma utilizzando mono e come te e molti altri affrontano il problema di cosa fare rispetto all'interfaccia utente e altra integrazione hardware sottostante.

Ho deciso che non volevo essere in balia di un altro quadro di terze parti (mono è sufficiente) e ho cercato una soluzione che potessi costruire e mantenere. Il nuovo pattern MVVM insieme a Expression Blend è davvero interessante, ma presto ti ritrovi bloccato quando si tratta di sviluppo multipiattaforma. Anche i pattern MVC an MVP non sembrano adatti a ciò di cui avevo bisogno. Finalmente stabilito sul modello PM e lo ha espanso in un PMH in cui l'H è per l'hardware. Per ottenere ciò di cui avevo bisogno, dovevo astrarre i widget fondamentali (pulsanti, pannelli, caselle di testo) in un livello di piattaforma sottostante per ogni tipo di dispositivo. Il mio livello di piattaforma rappresenta circa l'1% della mia base di codice e mi consente di colorare l'applicazione per ogni dispositivo per il quale l'ho targetizzato.

Per la mia soluzione WP7, utilizzo pochissimo HTML solo su 25 righe, il che è sufficiente per inizializzare l'applicazione e la pagina principale. Il resto dell'interfaccia utente viene creato a livello di programmazione proprio come farei in WinForms. Su WP7 utilizzo ancora il controllo Pivot perché è davvero fantastico e sto modellando un controllo simile per l'utilizzo su Android/iPhone. Anche se non sarà uguale al 100%, sarà molto simile e continuerà a utilizzare lo stesso motore di navigazione all'interno del mio core code.

Non sono ancora completo del mio sviluppo, ma finora sono molto contento dei miei progressi. Ho sviluppato un'interfaccia utente per l'applicazione Windows per circa 20 anni e non uso mai gli strumenti di interfaccia Builder in quanto trovo che non mi danno mai ciò che voglio e davvero sprecano il mio tempo (Blend è piuttosto interessante) e creano anche un tremendo numero di codice specialmente in Blend.

0

Non posso completamente aiutare con monocross - Ho fatto un campione per droid una volta - https://github.com/slodge/monocross-tab-activity-view - ma non ho mai completato la parte wp7 di quello.

Per mvvmcross ... che è legato ... ci sono un paio di campioni - uno nel tutorial (un po 'hacky!) E uno in app convegno - tanto il campione preferito.

La tecnica di base ho scelto era quello di utilizzare sub-ViewModel per ogni "scheda" del panorama - vedere come il DataContext associazione dati è impostato per ogni elemento in https://github.com/slodge/MvvmCross/blob/master/Sample%20-%20CirriousConference/Cirrious.Conference.UI.WP7/Views/HomeView.xaml

Si noti che in un'applicazione più grandi ci può essere importante problemi di memoria da considerare quando si esegue questa operazione, specialmente quando si utilizza un controllo pivot che non carica tutte le pagine contemporaneamente nella memoria (quindi non è necessario caricare tutti i modelli view)

Alcuni blog sull'app conf. : http://slodge.blogspot.co.uk/2012/03/update-on-mvvmcross-sqlbits-conference.html

E il bit sql finale sourc e: https://github.com/slodge/MvvmCross/tree/master/Sample%20-%20CirriousConference

tabs and pivot example