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 :

Bind d'event sur un TreeViewItem


Sujet :

Silverlight

  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 236
    Par défaut Bind d'event sur un TreeViewItem
    Bonjour à tous,

    Je re-débute avec ce bon vieux modèle MVVM que j'avais pas utilisé depuis quelques années, et j'ai oublié pas mal de choses malheureusement

    J'ai sur ma MainPage un Treeview dont la propriété ItemSource est bindé à une propriété du ViewModel correspondant.

    Cette propriété retourne une collection de string pour remplir le TreeView.

    Aucun problème jusqu'ici...

    Par contre j'aimerais ajouter un évènement "MouseLeftButtonDownEvent" sur chaque TreeViewItem une fois le TreeView rempli. Et mon problème est que je ne sais ni où le faire, ni comment le faire

    Premièrement, j'ai essayé dans le code behind de la vue, dans l'évènement treeview_loaded mais je n'arrive pas à récupérer de TreeViewItem, que des string :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
            private void trvwObjetsMG_Loaded(object sender, RoutedEventArgs e)
            {
                //Ajout des évènements pour le drag'n drop
                foreach (var item in trvwObjetsMG.Items)
                {
                    var tvItem = (TreeViewItem)item; //Génère une exception
                    tvItem.AddHandler(MouseLeftButtonDownEvent, new MouseButtonEventHandler(TreeViewItem_MouseLeftButtonDown), true);
                }
            }
    Donc je me suis dis que plutôt que de renvoyer une collection de string pour ma propriété du ViewModel, je vais renvoyer une collection de TreeViewItem, mais le souci viens du AddHandler, il faut créer le MouseButtonEventHandler avec un nom de fonction qui sera dans le ViewModel. Le souci c'est que cette fonction doit modifier la vue, et le principe est que le ViewModel n'accède pas directement à la vue, bref je suis un peu perdu...

    Merci pour vos lumières

  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
    Et en XAML? Si tu rajoutes l'event dans le template du TreeViewItem ?

Discussions similaires

  1. JDialog modal et event sur JFrame
    Par roberto1 dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 19/07/2006, 13h20
  2. [C#] Key event sur form
    Par kooljy dans le forum Windows Forms
    Réponses: 4
    Dernier message: 28/06/2006, 13h24
  3. Event sur base de donnée Firebird et programmation delphi
    Par seb8810 dans le forum Connexion aux bases de données
    Réponses: 5
    Dernier message: 16/03/2006, 17h06
  4. Event sur le parcours d'un combobox
    Par Psykotik dans le forum MFC
    Réponses: 11
    Dernier message: 25/11/2005, 09h20
  5. window.event sur netscape
    Par edon47 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 24/10/2005, 02h57

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