Domanda

Ciao vorrei crescere mia richiesta di avere unità discrete di funzionalità in controlli utente, e poi mettere molti di questi all'interno di una griglia di ContentControls sulla mia pagina principale. Dovrò poter comunicare tra i controlli nella griglia.

Mi chiedo, qual è il modo migliore per loro per scambiare dati. L'applicazione è un design MVVM, con ogni Usercontrol con il proprio ViewModel. Ognuno dei ContentControls del modulo principale 'content' è destinata a una proprietà in ViewModel della maschera principale che fornisce l'Usercontrol da visualizzare in quel ContentControl.

Ad esempio, consente di dire che voglio un browser di file migliorata, così costruisco in un UserControl. Poi ho un visualizzatore di file in un altro UserControl. Vorrei essere in grado di mostrare entrambi allo stesso tempo in una griglia nella maschera principale. Quando seleziono un file con il browser, voglio che il file selezionato sia disponibile per il Visualizzatore Usercontrol.

ho usato questo disegno in modo che potessi riutilizzare ogni pezzo di funzionalità, ovunque mi serviva nell'applicazione. Non mi è chiaro sul modo migliore per trasferire i dati tra di loro, come nel mio disegno non sono a conoscenza gli uni degli altri. Qualche consiglio? Grazie!

È stato utile?

Soluzione

Utilizzare un autobus messaggio. Se si utilizza il MVVM Luce Tookit , ad esempio, utilizzare il in-built IMessenger implementazione . In caso contrario, è abbastanza facile da rotolare il proprio.

Una volta che hai un autobus messaggio, è possibile registrare i messaggi in un ViewModel e pubblicare messaggi da un altro. E 'un modo semplice per comunicare (sia 1-1 o in un modo "broadcast") attraverso ViewModel.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top