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

Windows Presentation Foundation Discussion :

MVVM Window Close


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 137
    Par défaut MVVM Window Close
    Bonjour,

    Ca parrait évident mais je bloque.

    J'ai une Window que j'ouve en ShowDialog.
    Dedans, j'ai une Usercontrol qui est liée à un ViewModel

    Dans le User control j'ai un bouton OK qui sauve les données (via le viewmodel) mais je voudrait ensuite que la Window se ferme.

    Sur le bouton OK, c'est un iCommand qui est référenciée dans le viewModel

    Comment faire ?

    Merci

    Gridin

  2. #2
    Membre émérite Avatar de jmix90
    Homme Profil pro
    Consultant .Net
    Inscrit en
    Juillet 2007
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 576
    Par défaut
    Hello,

    Comment est-ce que tu créé la fenêtre et insère le ViewModel ?

    Sinon, je mettrais en place une interface contenant un événement routé RequestClose et la vue s'abonnerait à cet événement (ICloseable.RequestClose) pour fermer la fenêtre quand il est levé.

    Bon courage.

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 137
    Par défaut
    Voilà comment je contourne mais est ce que c'est bien propre ???

    J'ai transformé le usercontrol en window

    Sur le bouton, au lieu d'avoir une Command, j'utilise le click et dans le code behind je met :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    dynamic ActionViewModel = DataContext;
    ActionViewModel.OKAction();
    this.Close();

  4. #4
    Membre émérite Avatar de jmix90
    Homme Profil pro
    Consultant .Net
    Inscrit en
    Juillet 2007
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 576
    Par défaut
    Salut,

    De façon général, je ne vois pas le pattern MVVM en pensant qu'il faut anhiler complétement le code behind donc je dirais que dans ton cas, cela me convient très bien.

    Par contre, si tu veux un système, un peu plus consèquent mais plus propre, il faudrait mettre en place un service dédié à cela. Tu as de nombreux exemples sur le net (tape dialog service mvvm dans Google) et en voici un pour commencer : http://www.codeproject.com/KB/archit...M_Dialogs.aspx

    Bon courage,

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Window.close()
    Par marti dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/12/2005, 13h32
  2. Problème avec window.close()
    Par Didje dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 13/12/2005, 17h32
  3. window.close();
    Par 12_darte_12 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 18/10/2005, 14h37
  4. après un window.close() la page se réouvre toute seule???
    Par linux dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 31/08/2005, 17h29
  5. On Windows Closing ???
    Par BainE dans le forum MFC
    Réponses: 4
    Dernier message: 29/08/2005, 12h38

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