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

Silverlight Discussion :

cacher frame suite à une action dans la page de la frame


Sujet :

Silverlight

  1. #1
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2006
    Messages : 51
    Points : 41
    Points
    41
    Par défaut cacher frame suite à une action dans la page de la frame
    Bonjour tout le monde,

    Je cherche actuellement un moyen de contrôler une frame par la page qui est affichée dedans. Je voudrais que quand l'utilisateur a fini une action dans cette frame, elle puisse se fermer.

    Pouvez-vous me dire comme la page qui est dans la frame peut envoyer un signal à la page qui contient la frame ?

    Est-ce seulement possible ?

    Merci d'avance

  2. #2
    Membre émérite
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Points : 2 682
    Points
    2 682
    Par défaut
    Si je te suis bien tu veux cacher la frame qui contient ta page à partir de la page elle même.

    Te sers-tu de la pattern MVVM ?

    Si oui, il suffit de créer une propriété de type Visibility (appelons la FrameVisibility) dans ton ViewModel chargé de notifier ce changement d'affichage et de binder cette propriété directement sur la frame.

    sinon tu peux faire un truc un peu crade du genre :

    dans ton MainPage ou se trouve ta frame (appelé "MaFrame") tu definis une propriété static contenant l'instance de MainPage

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
      public MainPage()
      {
           InitializeComponent();
     
           this.Current=this;
      } 
     
      // defnition d'une instance static de MainPage
     
      public static Current
       {
             get;
             private set;
       }

    puis dans ta page il suffit de modifer la propriété Visibility de ta frame

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
      MainPage.Current.MaFrame.Visibility = Visibility.Collapsed;

  3. #3
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2006
    Messages : 51
    Points : 41
    Points
    41
    Par défaut
    Merci Samuel, j'ai prit le code "crade" mais il fais exactement ce que je veux.

    Néanmoins, je redonne le code ici pour ceux qui chercherons car j'ai du le modifier :

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
            public MainPage()
            {
                InitializeComponent();
                Current = this;
            }
            public static MainPage Current
            {
                 get;
                 private set;
            }

  4. #4
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2006
    Messages : 51
    Points : 41
    Points
    41
    Par défaut
    Je réouvre le sujet car j'ai encore un problème.

    Quand je cache la frame et que le client retourne dessus plus tard, la frame garde en mémoire la page xaml dans son ancien état. J'ai essayé de faire un MaFrame.Refresh() mais il semble sans effet.

    existe-t-il une solution pour fermer le handle de la page ouvert dans la frame pour ensuite la relancer ?

  5. #5
    Membre émérite
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Points : 2 682
    Points
    2 682
    Par défaut
    Néanmoins, je redonne le code ici pour ceux qui chercherons car j'ai du le modifier
    Tu as bien fait car j'ai écrit le code directement dans l'éditeur de DVP sans le tester

    Pour ton autre problème il suffit de s'abonner à l'evenement Navigating de ta frame afin qu'il lui affecte la propriété Visibility à Visible

  6. #6
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2006
    Messages : 51
    Points : 41
    Points
    41
    Par défaut
    Ce n'est pas un problème de visibilité mais dans la frame, j'affiche un formulaire. Une fois que le formulaire est validé, il a un message "Votre formulaire a bien été envoyé".

    Si pour une raison quelconque, le visiteur retour sur le formulaire, il voit le message "Votre formulaire a bien été envoyé" de la dernière fois. En gros, il ne ferme pas l'instance de mon objet formulaire et je ne sais pas comment faire. La commande frame.refresh() ne semble pas résoudre le problème.

    Cette frame n'est utilisé que pour afficher ce formulaire (pour le moment).

  7. #7
    Membre émérite
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Points : 2 682
    Points
    2 682
    Par défaut
    Ah ok j'avais mal compris.
    Tu ne peux pas appeler la méthode Navigate pour lancer ta page de départ ?

  8. #8
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2006
    Messages : 51
    Points : 41
    Points
    41
    Par défaut
    Ben voila, là c'est bon. Je passe par une fenêtre "empty" entre les deux passages, c'est pas propre mais ça fonctionne !

    Merci beaucoup Samuel

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

Discussions similaires

  1. Nouvelle page suite à une action
    Par bradev dans le forum JSF
    Réponses: 1
    Dernier message: 20/10/2011, 22h46
  2. Réponses: 4
    Dernier message: 30/09/2009, 14h37
  3. suite à une action, ma page ne s'affiche plus correctement
    Par troussepoil dans le forum Struts 1
    Réponses: 2
    Dernier message: 04/09/2008, 13h54
  4. [Struts] Appel d'une action dans une action
    Par cosmos38240 dans le forum Struts 1
    Réponses: 2
    Dernier message: 16/02/2006, 15h52
  5. Confirmer une action dans un lien PHP
    Par Invité dans le forum Langage
    Réponses: 6
    Dernier message: 11/10/2005, 19h29

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