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 :

ListView : associer un MouseDoubleClick à un item ?


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 36
    Par défaut ListView : associer un MouseDoubleClick à un item ?
    Bonjour à tous,

    Je viens de créer un listview et je voudrais que sur le doubleclick "MouseDoubleClick" s'affiche une fenêtre d'édition correspondant à l'item sélectionné.

    Oui mais voila, le MouseDoubleClick semble fonctionner sur tous le contrôle alors quand je sélectionne un item et que je double click sur le scroll vertical par exemple, l'évenement se déclenche et ma fenêtre s'ouvre en édition et je ne peux plus scroller à la main.

    Ma question est donc la suivante:

    Comment peut on savoir que l'évenement MouseDoubleClick est associé à mon item et non pas de mon listview ?

    Merci d'avance à tous,

    (VS2010, frk 4)

  2. #2
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Il faut t'abonner au MouseDoubleClick des items et pas du listview

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par PitMaverick78 Voir le message
    Il faut t'abonner au MouseDoubleClick des items et pas du listview
    Effectivement, c'est le plus simple. Pour faire ça tu peux mettre un EventSetter dans le ItemContainerStyle :

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ...
    <ListView.ItemContainerStyle>
        <Style TargetType="ListViewItem">
            <EventSetter Event="MouseDoubleClick" Handler="ListViewItem_MouseDoubleClick" />
        </Style>
    </ListView.ItemContainerStyle>
    ...

    Sinon, tu peux aussi vérifier la propriété Source du paramètre de l'évènement. Par contre ça ne te donnera pas forcément le ListViewItem lui-même, ce sera sans doute un des contrôles enfants du ListViewItem. Bref, la première solution est quand même plus simple...

  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
    Hello,

    Tu as aussi un exemple complet de disponible dans mon article intitulé S'abonner FACILEMENT aux événements lancés par les enfants d'un ItemsControl

    Bon courage,

  5. #5
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 36
    Par défaut
    Ok, j'ai testé, ça à l'air de fonctionner :

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <ListView.ItemContainerStyle>
        <Style TargetType="ListViewItem">
            <EventSetter Event="MouseDoubleClick" Handler="ListViewItem_MouseDoubleClick" />
        </Style>
    </ListView.ItemContainerStyle>

    En faite si j'ai bien compris, c'est juste une restriction de l'évenement MouseDoubleClick au container du ListViewItem ?!

    Merci à vous pour votre aide

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par EmacLi Voir le message
    En faite si j'ai bien compris, c'est juste une restriction de l'évenement MouseDoubleClick au container du ListViewItem ?!
    Comment ça une "restriction" ? je comprends pas ce que tu veux dire...

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

Discussions similaires

  1. [QtGui] Associer un fichier à un item QTreeWidget
    Par makia42 dans le forum PyQt
    Réponses: 3
    Dernier message: 10/05/2011, 20h40
  2. Associer un datafield à un item imageButton
    Par jeanponu dans le forum ASP.NET
    Réponses: 1
    Dernier message: 02/07/2010, 17h18
  3. WPF ListView avec Checkbox, trouver l'item qui a été Checked
    Par fmadore dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 09/12/2008, 17h21
  4. Treeview: associé un objet à chaque Item ?
    Par TSalm dans le forum Framework .NET
    Réponses: 2
    Dernier message: 29/10/2007, 16h57
  5. [C#]Listview et affichage de l'item sélectionné
    Par debug dans le forum Windows Forms
    Réponses: 2
    Dernier message: 11/05/2005, 14h34

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