Je travaille sur une application Prism où nous explocons dans les données (pour obtenir plus de détails). Dans ma mise en œuvre, j'ai un MVVM imbriqué et lorsque je naviguer dans l'arbre, je voudrais passer un modèle à une vue ma nouvelle vue. P>
Autant que je sache, le prisme permet de passer des chaînes, mais ne permet pas de passer des objets. J'aimerais savoir quelles sont les moyens de surmonter cette question. P>
3 Réponses :
J'utilise habituellement un service où j'inscrite les objets que je veux être adopté avec un guid. Celles-ci sont stockées dans une hache et une navigation dans le prisme, je transmettez le GUID comme paramètre qui peut ensuite être utilisé pour récupérer l'objet. P>
J'espère que cela a du sens pour vous! P>
Ça a du sens. C'est une honte Prism ne supporte pas l'objet de passage pendant la navigation, cela rendrait la vie tellement plus facile.
J'utiliserais les méthodes Onnavigated et ONNavigatedFromDe méthodes pour transmettre les objets à l'aide de la NavigationContext.
d'abord dériver la vue de la vue de l'interface d'inavigationaware - p>
void INavigationAware.OnNavigatedTo(NavigationContext navigationContext) { if (navigationContext.NavigationService.Region.Context != null) { if (navigationContext.NavigationService.Region.Context is SharedData) { SharedData data = (SharedData)navigationContext.NavigationService.Region.Context; ... } } }
Onnavigatedfrom ne fonctionne que si votre navigation dans une vue dans la même région. Si vous êtes dans une autre région, vous pouvez le faire: _regionmanager.regions [régionnames.mainregion] .Context = nouvelle liste
prisme prend en charge la fourniture de paramètres: et implémentez l'interface InavigateraWare sur votre vue, ViewModel ou les deux. p> Vous pouvez également trouver des détails ici: