442 messaggi dal 09 marzo 2006
Ciao.volevo chiedere se per passare le collection tra viewmodel e meglio usare un servizio mef(uso prism) shared come esportazione e condividerlo tra i view model che usano quese collection o se va bene passarle con un parametro dell evento tramite event aggregator.
Cosa alla fine riduce di piu la complessita e rende piu uniforme il lavoro?
Grazie.
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao Giuseppe,
entrambe sono soluzioni percorribili.

A prescindere dal payload che portano, gli eventi che immetti nell'eventaggregator dovrebbero rappresentare delle azioni compiute dall'utente, come "ProdottiSpediti", "PreventivoConfermato" e così via.
Nel caso dell'evento "ProdottiSpediti" potrebbe aver senso allegare la lista dei prodotti in questione.

Nel caso di "PreventivoConfermato", non alleghi l'intera lista di preventivi, ma solo il preventivo in questione. Sarà cura del viewmodel aggiornarsi in risposta a questo evento (se per esempio stava visualizzando l'intera lista di preventivi).

Se invece hai una lista che muta spesso (es. stai monitorando situazioni di allarme in dispositivi IoT), potrebbe aver senso esportare un servizio che espone una ReadOnlyObservableCollection. La UI si adeguerà automaticamente man mano che gli elementi vengono aggiunti o rimossi. In aggiunta potresti anche sollevare un evento tipo "AllarmeInCorso" e "AllarmeRietrato" nel caso in cui altri componenti siano interessati a quell'evento specifico per inviare email di notifica, per esempio.
Potrebbero pure sottoscriversi agli eventi della ReadOnlyObservableCollection ma penso sia più chiaro sollevare degli eventi di dominio in questo caso.

Quindi la risposta è: dipende dal caso.

ciao,
Moreno

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.