2010-04-30 16 views
5

Qual è l'approccio migliore per la navigazione tra UserControls/Pages (fuori dall'esperienza del browser)? Sono abbastanza nuovo per Silverlight e ancora più recente per il modello mvvm.Silverlight Navigazione usando Mvvm-light (oobe) + MEF?

In che modo il framework di navigazione si integra con MVVM Light Toolkit? Uno snippet per il controllo generale del flusso delle applicazioni con i due sarebbe ottimo.

Il piano prevedeva l'utilizzo del Navigation Framework per il flusso generale o l'utilizzo dell'approccio di Jeremy Likeness alla gestione delle regioni (http://csharperimage.jeremylikness.com/search/label/regions) e lo scambio delle regioni in base alle esigenze. Ho visto alcuni punti menzionare la sostituzione del Visual Root, ma mi sembrava un trucco.

Qualsiasi consiglio, frammento o spunto nella direzione generale sarebbe molto apprezzato.

Grazie.

+0

buona fortuna: P Navigation API ain Per nulla MVVM:/ – vidalsasoon

risposta

0

Sto lottando con la stessa cosa, Tuttavia, sono un po 'allontanato dal "NavigationService" perché presumibilmente il diario mantiene il riferimento all'oggetto in memoria o qualcosa che ho letto da qualche parte.

Ho cercato di utilizzare un frame nella finestra principale e di utilizzare mvvm light per inviare messaggi di navigazione alla finestra per modificare il frame.

Modifica: l'ho capito.

Nella finestra principale (codice dietro, non ViewModel) ho aggiunto un Messenger.Default.Register (Of NotificationMessage (Of NavMsg)) ...

Poi in qualsiasi modello di vista faccio un Messenger .Default.Send (Of Notificationmessage (Of NavMsg)) ...

E quindi ho creato una classe NavMsg che accetta una stringa uri o un oggetto per navigare.

Ecco alcuni modelli di codice T4 per generare il codice per view/viewmodel per funzionare con mvvmlight e ha dimostrato il messaggio della finestra di chiusura sopra. http://dl.activeaspsoftware.net/dl.aspx?f=MvvmLightCodeTemplates.zip

+0

Eccellente Spero di poter dedicare un po 'di tempo oggi o domani per dare un'occhiata. Tra l'altro bel tavolo multi-touch :) –

Problemi correlati