J'ai écrit une application Windows Store que je dois porter sur Android. J'essaie d'utiliser MvvmCross et Xamarin dans Visual Studio pour y parvenir. Dans mon application Windows, je créer un écran en utilisant XAML et dans la zone de texte, etc., définir la liaison au champ dans mon objet datamodel. J'obtiendrais mes objets datamodel d'une référence de service de WCF. Dans le code derrière pour l'écran, je voudrais simplement définir le datacontext de la grille de mise en page racine à l'objet datamodel généré par la référence de service. C'était plutôt simple.MvvmCross Relier votre DataModel à votre ViewModel
Dans MvvmCross, il semble que vous exécutiez fondamentalement le viewmodel pour charger une page. La syntaxe des champs du viewmodel est vraiment identique à ceux générés dans le datamodel par la référence du service. Je sais que Mvvm a besoin du viewmodel en tant que shim entre le datamodel et la vue. Existe-t-il un moyen efficace de passer les propriétés du modèle de données, à travers le viewmodel à la vue? J'ai la référence de service fonctionnant et générant des objets et des données de la WCF. Je pourrais coder en dur chaque champ qui existe dans le modèle de données dans le viewmodel et avoir l'action get set sur les champs de l'objet datamodel. J'espérais juste qu'il y avait une façon moins manuelle de le faire. Aucune suggestion?
Vous pouvez utiliser quelque chose comme 'AutoMapper' pour déplacer les propriétés. Ou vous pouvez exposer votre classe WCF DTO comme une propriété sur le ViewModel - par exemple. voir comment le Session DTO a été utilisé dans https://github.com/MvvmCross/MvvmCross-Tutorials/blob/master/Sample%20-%20CirriousConference/Cirrious.Conference.UI.Droid/Resources/Layout/Page_Session.axml#L55 – Stuart
Merci beaucoup Stuart. J'ai utilisé ton plan B. J'ai travaillé comme un charme une fois que j'ai compris les nuances. [Activity (Label = "Voir pour ShipmentViewModel")] est très important hehe. –
Stuart, comment marquer votre commentaire comme réponse? –