Bonjour, j'aurais besoin de conseils pour poursuivre mon développement actuel avec une bonne méthodologie.
Pour éviter de rentrer dans les détail, je simplifie mon énoncé :
Je développe en MVVM, j'ai une vue principale qui permet de superviser à distance un train radio commandé ()...
Le train a 3 wagons, dans ma vue, on modélise donc une motrice et ses 3 wagons + quelques dessins autour pour avoir quelque-chose de joli.
La motrice c'est un user control : UcMotrice.
Les wagons ce sont aussi des user control du type : UcWagon.
Dans le ViewModel, on peut faire (en appelant des relayCommand) :
Démarrer/Stopper la motrice.
Accéder à un écran qui détaille mieux la motrice (en cliquant sur l'UcMotrice).
D'autres actions spécifiques à la motrice (appelables depuis l'UcMotrice).
Allumer/Eteindre un wagon.
Accéder à un écran qui détaille mieux un wagon (en cliquant sur un UcWagon).
D'autres actions spécifiques à un wagon (appelables depuis un UcWagon).
...
Jusqu'à maintenant, j'ai remarqué que le MVVM était pas trop fait pour l'héritage, voici mon besoin :
Je vais avoir d'autres types de train :
Imaginons que j'ai un train avec une motrice (même type de motrice) et 5 wagons (même type de wagon).
Comment puis-je développer ça élégamment tout en prenant en compte que j'utilise Expression Blend pour le Développement (je dis ça car certains template sont mal/non gérés dans Blend (genre les tooltip ajoutées en template sur certains contrôles WPF)) ????
A première vue, je mettrait bien ma motrice + les Wagons + les dessins qui vont avec dans un UcTrainTypeA. Je créé ensuite un UcTrainTypeB avec sa motrice et ses 6 wagons, vu que les dessins sont différents et que les wagons doivent être disposés différemment vaudrait mieux faire 2 Uc différents.
Le soucis ensuite, c'est comment on agence/déclare ça dans la vue ?
j'ai lu des choses sur les customControl, mais je suis pas sûr que ça soit bien adapté.
l'idéal serait qu'on lise un paramètre dans l'app.config qui renseigne le type de train direct au constructeur du ViewModel.
Comme ça on charge direct l'Uc du type de train voulu dans la vue.
Puis dans Expression Blend, le bon Uc est chargé direct dans la vue en design...
Mais bon, je vois pas trop comment faire, je suppose un truc de template direct dans le XAML ???
Si vous avez tenu le coup jusqu'ici, merci d'avance pour vos conseils.
Des conseils pour ce "truc de template direct dans le XAML" ?
Une meilleure idée qui résolve ma problématique ?
Partager