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 :

[c#/WPF] Ajout d'un evenement CancelEvent dans une classe


Sujet :

Windows Presentation Foundation

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 11
    Points : 9
    Points
    9
    Par défaut [c#/WPF] Ajout d'un evenement CancelEvent dans une classe
    Bonjour,

    Je suis en train de créer mon propre container wpf ( afin de pouvoir l'ancré dans des grids, d'apres ce que j'ai vu, il est impossible d'ancré une window).
    je suis donc parti du type grid, et j'ai rajouté mes propriétés et méthodes.
    Il a fallu que je gère l'evenement onclose. Au début j'ai rajouté un routedevent, mais vu que je n'arrive pas à annuler cet evenement ( par exemple si l'utilisateur ne veut plus sortir), j'ai décidé de mettre un cancelevent ( le meme evenement que lors de la fermeture d'une window), mais je n'y arrive pas du tout.

    voici le code que j'utilise pour ajouter mon routedevent :

    Code : 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 static readonly RoutedEvent CloseEvent =
        EventManager.RegisterRoutedEvent("onClose", RoutingStrategy.Bubble,
    typeof(RoutedEventHandler), typeof(mgaGrid));
     
    public event RoutedEventHandler onClose
    {
        add { AddHandler(CloseEvent, value); }
        remove { RemoveHandler(CloseEvent, value); }
    }
     
    public void Close()
    {
        this.RaiseEvent(new RoutedEventArgs(CloseEvent, this));
    }
    J'ai bien essayé de faire la meme chose pour ajouter le CancelEvent, mais le this.RaiseEvent ne prend qu'un RoutedEvent comme argument....

    Si quelqu'un avait une idée, je lui en serai bien reconnaissant.

    Cordialement
    Dimitri

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    cancelevent, il est de quel type ? C'est un event classique ou un RoutedEvent ? Si c'est un event classique, tu dois juste le déclarer et t'y abonner, comme pour n'importe quel event

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 11
    Points : 9
    Points
    9
    Par défaut
    c'est un event classique.

    et j'ai donc fait comme avant, en 2.0

    Code : 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 void Close()
            {
                CloseEvent(new CancelEventArgs());
            }
     
            public delegate void CloseEventHandler(object sender, CancelEventArgs e);
            public event CloseEventHandler onClose;
     
            protected virtual void CloseEvent(CancelEventArgs e)
            {
                if (onClose != null)
                {
                    onClose(this, e);
                }
            }
    et ça marche...
    pourquoi faire simple quand on peut faire que ca ne marche pas ?

    merci...

  4. #4
    Membre confirmé Avatar de zulad
    Homme Profil pro
    creatif
    Inscrit en
    Juin 2007
    Messages
    713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : creatif

    Informations forums :
    Inscription : Juin 2007
    Messages : 713
    Points : 519
    Points
    519
    Par défaut
    ou pourquoi faire quand on peut ne pas le faire

  5. #5
    Membre actif
    Avatar de adaneels
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2006
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Août 2006
    Messages : 236
    Points : 210
    Points
    210
    Par défaut
    tard... mais vu que ce n'est pas résolu et que l'on tombe ici en cherchant comment ajouter un évènement en WPF, voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    public class SampleEventArgs
    {
        public SampleEventArgs(string s) { Text = s; }
        public String Text {get; private set;} // readonly
    }
    public class Publisher
    {
        // Declare the delegate (if using non-generic pattern).
        public delegate void SampleEventHandler(object sender, SampleEventArgs e);
     
        // Declare the event.
        public event SampleEventHandler SampleEvent;
     
        // Wrap the event in a protected virtual method
        // to enable derived classes to raise the event.
        protected virtual void RaiseSampleEvent()
        {
            // Raise the event by using the () operator.
            SampleEvent(this, new SampleEventArgs("Hello"));
        }
    }
    (Ce bout de code provient de la MSDN : http://msdn.microsoft.com/fr-fr/library/8627sbea.aspx)

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

Discussions similaires

  1. Ajouter Evenement Onclick dans une classe
    Par Homo_Informaticus dans le forum VB.NET
    Réponses: 1
    Dernier message: 24/03/2011, 13h45
  2. Ajout d'une variable dans une class fait planter
    Par Geoff-sk8 dans le forum C++
    Réponses: 4
    Dernier message: 11/10/2006, 14h27
  3. Ajouter une interface dans une classe
    Par Battosaiii dans le forum Langage
    Réponses: 2
    Dernier message: 03/10/2006, 14h02
  4. Ajout/Suppression dynamique des lignes dans une table
    Par codexomega dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 13/08/2005, 18h50

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