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 :

Passer plusieurs paramètres à une commande


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2008
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 22
    Par défaut Passer plusieurs paramètres à une commande
    Bonjour j'ai un problème pour récupérer l'objet sélectionné d'un TreeView

    Voilà la situation :

    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
    <UserControl>
         <UserControl.Resources>
              <DataContext x:Key="datacontext1">
                   <MenuItem Command="{Binding Command}" CommandParameter=???>
                   </MenuItem>
              </DataContext>
    
              <Style x:Key="style">
                   <Setter Property="DataContext" Value="{StaticResource datacontext1}"
              </Style>
         </UserControl.Resources>
    
         <TreeView x:Name="treeview1"> 
              ...
         </TreeView>
    
         <ListView x:Name="listview1" ItemContainerStyle="{StaticResource style}">
              ...
         </ListView>
    </UserControl>
    J'aimerais depuis mon DataContext déclaré dans mes ressources passer 2 paramètres (L'objet sélectionné dans le TreeView et son objet parent car le TreeView possède 2 niveaux d'objets)

    J'ai essayé dans un premier temps de récupérer l'objet sélectionné sans son parent comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <MenuItem Command="{Binding Command}" CommandParameter="{Binding Path=SelectedItem, ElementName=treeview1}">
    </MenuItem>
    Mais il semblerait que depuis mes ressource je n'ai pas accès à mon TreeView car je reçois un paramètre null

    Merci d'avance,

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Par défaut
    Salut,

    Qu'est-ce que tu veux faire exactement ? Je ne comprend pas trop ton code. Associer un Menu contextuel à tes items du TreeView ?

    Si c'est le cas, il faut créer un ContextMenu. Ensuite j'ai toujours procéder via du code behind (abonnement à l'événement PreviewMouseDown des TreeViewItem et récupération du sender qui correspond à l'item sélectionné).

    Un exemple de ce que je veux dire ici :
    http://www.developpez.net/forums/d89...text-treeview/

    En espérant avoir bien compris ce que tu voulais faire

  3. #3
    Membre averti
    Inscrit en
    Novembre 2008
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 22
    Par défaut
    Je viens de voir qu'il était possible de passer plusieurs paramètres à la commande en utilisant le MultiBinding,
    mon problème maintenant est que je n'arrive pas à accéder aux éléments de mon UserControl (via la propriété ElementName) depuis les ressources du UserControl

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <Menu Item Command="{Binding command}" CommandParameter="{Binding Path=SelectedItem, ElementName=TreeView1}"
    Ne fonctionne pas, je récupère la valeur null comme paramètre alors que dans le code behind cela fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    object obj1 = TreeView1.SelectedItem;
    object obj2 = ListView1.SelectedItem;
    obj2.command.Execute(obj1);
    Peut-être est-ce du à une problème de scope au niveau des espaces de nom ? L'espace de nom des ressources n'ayant pas connaissance des éléments présents dans le usercontrol (ce n'est qu'une supposition..)

    Merci d'avance,

Discussions similaires

  1. [2.x] Conseils pour passer "dynamiquement" plusieurs paramètres à une url
    Par FooFighters dans le forum Symfony
    Réponses: 9
    Dernier message: 10/03/2014, 16h04
  2. Réponses: 1
    Dernier message: 29/09/2011, 23h40
  3. Réponses: 2
    Dernier message: 22/10/2009, 09h22
  4. Passer un paramètre à une commande via un batch
    Par Qamalito dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 18/03/2008, 00h00
  5. Réponses: 5
    Dernier message: 03/07/2007, 10h31

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