IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

C# Discussion :

MVVM - Events envoyés par un ViewModel


Sujet :

C#

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 9
    Par défaut MVVM - Events envoyés par un ViewModel
    Salut !

    J'ai environ 15 jours d’expérience dans le développement C# .NET ...

    Je suis actuellement en train de réaliser un projet implémenté avec le pattern MVVM. Pour le moment, pas de soucis majeur.

    Cependant, j'atteins le stade ou je commence a avoir besoin des évènements customs (et leur handlers).

    J'ai dans ma MainWindow un TabControl ainsi que des boutons sur la page d'accueil (WelcomeView).
    J'aimerai pouvoir réaliser un système d’évènements qui permette a l'utilisateur de cliquer sur un des boutons et de lier l'ouverture d'un nouvel onglet (ou le passer de Collapsed a Visible s'il est juste masqué).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <TabControl x:Name="TabController" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" BorderThickness="0">
        <TabItem Header="Accueil">
            <Grid Background="#FFE5E5E5">
                <View:WelcomeView x:Name="WelcomeView"/>
            </Grid>
        </TabItem>
        <TabItem Header="TabItem">
             <Grid Background="#FFE5E5E5">
                 <View:ModuleLoaderView x:Name="ModuleView"/>
            </Grid>
        </TabItem>
    </TabControl>
    J'ai regarder ici pour voir le fonctionnement des évènements cependant.
    J'ai donc créé ma classe d’évènement et j'ai voulu dire a ma MainWindow de catcher cet évènement.

    Hors depuis la MainWindow je n'ai pas accès aux ViewModels / Services qui vont raise des events (parce que -j'essaye- de passer par ModuleLoaderView qui devrai se charger d'afficher la vue du module demandé).

    Comment puis-je implémenter mon handler en respectant le pattern MVVM ?
    Et comment je peux accéder et définir mon équivalent du champ "myTextGenerator.OnTextChanged" (cf tuto cité plus haut, partie IV) alors que je n'ai pas accès aux ViewModels / Services pouvant raise les évènements ?

    J'avais penser a faire une classe singleton héritant de TabControl qui me permettrait d'y accéder depuis n'importe quel module / service, mais cela me semble un peu extrême comme solution et je ne pense pas que ça va résoudre mes problèmes d’accès pour définir le handler..

    Merci
    Dotixx

  2. #2
    Membre Expert
    Avatar de GuruuMeditation
    Homme Profil pro
    .Net Architect
    Inscrit en
    Octobre 2010
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : .Net Architect
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 705
    Par défaut
    Avec le patter MVVM, on utilise souvent des messages. Si tu utilises le framework MVVM Light, il y a tout un système de messages.

    Ta vue peut se registrer pour le message blabla, qui peut-être envoyé de n'importe où (autre vue ou viewmodel).

    Tu peux voir les messages comme des sortes de super évènements.

    Un petit tuto ici : http://dotnet.dzone.com/articles/mvv...hats-messenger

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 9
    Par défaut
    Merci de ta réponse (:

    Je n'utilise pas de framework, j'ai utilisé l'architecture proposé ici.

    Je suppose que le Messenger est propre a MVVM Light ? :/

  4. #4
    Membre Expert
    Avatar de GuruuMeditation
    Homme Profil pro
    .Net Architect
    Inscrit en
    Octobre 2010
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : .Net Architect
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 705
    Par défaut
    Oui, dans ce cas c'est propre à MVVM Light.

    C'est un petit Framework sympa et léger (d'où le nom) avec tout ce qu'il faut pour démarrer en MVVM

Discussions similaires

  1. Réponses: 135
    Dernier message: 15/12/2006, 13h56
  2. Réponses: 2
    Dernier message: 30/11/2004, 02h36
  3. Sauvegarder automatiquement un mail envoyé par asp
    Par Immobilis dans le forum ASP
    Réponses: 7
    Dernier message: 27/10/2004, 14h11
  4. Envoyer par mail un document Rave Report
    Par Wilco dans le forum Bases de données
    Réponses: 3
    Dernier message: 10/10/2004, 10h55
  5. Réponses: 4
    Dernier message: 18/09/2003, 10h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo