Sto cercando di trovare il modo migliore per associare Views e ViewModels in MVVM e ho optato per l'approccio ViewModel utilizzando typed DataTemplates, come descritto in this article e in this answer. Sto usando Prism e ho più moduli che hanno i loro propri progetti/librerie di classi.Dove dovrei definire i miei datatemplates?
La mia domanda è: Dove dovrebbero vivere i miei DataTemplates nella mia soluzione?
- Devo mettere i DataTemplates in un dizionario risorse che vive nello stesso progetto che ha le tipi/ViewModels rende?
- Devo inserire i DataTemplates in un dizionario di risorse che risiede nel progetto che ha la MainWindow dell'applicazione (cioè Shell.xaml)?
- Questi dizionari delle risorse dovrebbero quindi essere aggiunti a
App.Current.MainWindow.Resources.MergedDictionaries
?
Spero che questa informazione sia sufficiente per descrivere quello che sto cercando di fare.
Aggiornamento: vedere i commenti della risposta selezionata.
Ehi, grazie per il tuo suggerimento. Ho letto quel post qualche tempo fa e uso il metodo che Rachel descrive lì. Ho un progetto di infrastruttura con una cartella Temi in cui memorizzo i miei stili in 'Dizionari risorsa '. Il problema è che questo progetto di infrastruttura è referenziato da tutti i miei altri progetti/moduli. Per utilizzare 'DataTemplates' digitati, avrò bisogno di riferimenti ai progetti che contengono i miei ViewModels, il che significherebbe creare una dipendenza circolare. Devo creare un progetto separato per contenere solo 'DataTemplates'? –
Penso che tu possa creare solo i temi della cartella nell'assieme del tuo modulo. Faccio questo modo nel progetto attuale - Ho condiviso i modelli in un assembly UI separato e quasi l'assemblaggio di ogni modulo ha la sua cartella Themes – chopikadze
Ok, sembra proprio la strada da percorrere! Grazie, apprezzo il tuo consiglio. Vedrò se riesco a farlo funzionare. –