Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Presentation Foundation Discussion :

MVVM questions et conseils


Sujet :

Windows Presentation Foundation

  1. #1
    Candidat au Club
    MVVM questions et conseils
    Bonjour,

    alors je ne suis pas dev.. j'apprends la programmation seul sur mes temps libre depuis env 6 mois
    je veux me faire mon propre logiciel j'ai déjà fait pleins de versions mais c'est toujours du bricolage de crasseux..

    je suis parti sur du WPF et maintenant j'essaye de faire un truc propre en MVVM mais c'est chaud .. je galère dessus depuis 2-3 semaines

    j'ai plusieurs questions ou seul des personnes d’expérience pourront me conseiller je pense

    mon appli pour simplifier

    on va dire que j'ai 2 classes

    class Humain -> 45 propriétés
    class Animal -> 30 propriétés

    mon UI a 2 boutons :

    button "Humain"
    button "Animal"

    quand on clic sur humain ça fait apparaître un datagrid ou une viewlist avec un datatemplate

    1) je me demande ce qui est le mieux entre datagrid et viewlist sachant que je veux ajouter des checkbox ou bouttons dans le résultat affiché.. j’étais d'abord partie sur un datagrid mais le viewlist avec datatemplate semble donner un meilleur look ?

    2) pour le moment je me sert de Viewlist.Visibility = Visibility.Visible; ou Viewlist.Visibility = Visibility.Hidden; pour afficher ou cacher mes viewlist est acceptable comme solution ?

    pour la partie MVVM je sais pas trop comment m'y prendre..
    je suis partie pour mettre mes 2 classes Humain et Animal dans le Model avec INotifyPropertyChanged sur toute les propriétés
    dans le modele-view une ObservableCollection<Animal> ListAnimal et une ObservableCollection<Humain> ListHumain

    par contre les méthodes qui calcul les propriétés de mes class c'est dans la partie model ou model-view ?
    je pensais peut être a faire un task pool pour calculer le plus rapidement toute les propriété afin de construire L'ObservableCollection en temps réel ?

    si je veux que certaines de mes propriétés s'affichent en vert ou autre je dois le faire dans la partie view model ou xaml ?

    mm j'ai regardé énormément de code MVVM sur youtube ou Codeprojet etc..
    soit c'est trop compliqué je comprends rien..
    soit c'est trop basic et du coup ça m'aide pas .. dur dur d'être nul quand on débute..

    bref si vous avez des conseils ou exemple de code etc je prend !!


  2. #2
    Expert confirmé
    bonjour

    ) je me demande ce qui est le mieux entre datagrid et viewlist sachant que je veux ajouter des checkbox ou bouttons dans le résultat affiché.. j’étais d'abord partie sur un datagrid mais le viewlist avec datatemplate semble donner un meilleur look ?
    C'est affaire de design ou si tu veux "look"


    2) pour le moment je me sert de Viewlist.Visibility = Visibility.Visible; ou Viewlist.Visibility = Visibility.Hidden; pour afficher ou cacher mes viewlist est acceptable comme solution ?
    C'est moche et inadapté ,TabPanel est ami...avec 2 TabItems "animaux" et "humains" (ce qui rend superflus les 2 buttons)....


    pour la partie MVVM je sais pas trop comment m'y prendre..
    je suis partie pour mettre mes 2 classes Humain et Animal dans le Model avec INotifyPropertyChanged sur toute les propriétés
    dans le modele-view une ObservableCollection<Animal> ListAnimal et une ObservableCollection<Humain> ListHumain
    Partie la plus délicate ...!!!

    1/Dans Model :supprimer l'implémentation de INotifyPropertyChanged...

    2/ Dans Model-View:
    - implémenter INotifyPropertyChanged...
    - implémenter ICommand
    3/ Les méthodes Save ,Delete ,New doivent se faire via un Command

    A chaque Command est associé une méthode ...
    Un Button est bindé à chaque Command(Button.Command ={Binding etc ...}
    On peut associer des Buttons et assimiles (Checkbox,MenuItem,etc ..)
    Ainsi que des buttons pour d'autres méthodes...
    Il faut explorer l'implémentation de ICommand...

    si je veux que certaines de mes propriétés s'affichent en vert ou autre je dois le faire dans la partie view model ou xaml ?
    C'est du ressort de l'interface ,c.à.d. du xaml ...
    Mais ces frétillements de de l'interface peuvent dépendre des props du Model ou du View-Model
    et les Triggers du DataTemplate sont là pour résoudre ce problème !!!
    bon code...

###raw>template_hook.ano_emploi###