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

C# Discussion :

Commande sur un bouton qui ne réagit pas


Sujet :

C#

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

    Informations forums :
    Inscription : Novembre 2011
    Messages : 9
    Points : 5
    Points
    5
    Par défaut Commande sur un bouton qui ne réagit pas
    Salut

    Je fais actuellement une app WPF respectant le pattern MVVM (sans framework, j'ai implémenté le code de Josh Smith).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <ListView HorizontalAlignment="Stretch" ScrollViewer.HorizontalScrollBarVisibility="Disabled" Grid.Row="1" BorderThickness="0"
                      Margin="0,2,0,0" VerticalAlignment="Stretch" Background="{x:Null}" ItemsSource="{Binding OpenedWindows}">
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <Button VerticalAlignment="Stretch" HorizontalAlignment="Stretch" ToolTip="{Binding Path=Header}"
                                Command="{Binding LoadFuncCommand}" CommandParameter="{Binding Path=Id}">
                            <Image Source="{Binding Path=Thumbnail}"/>
                        </Button>
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>
    Tout fonctionne sauf le Command={Binding LoadFuncCommand}.
    J'ai un accesseur dans mon ViewModel : public ICommand LoadFuncCommand, initialisé comme pour toutes les commandes de mon projet.

    Cependant, lorsque je clique sur le bouton, la commande n'est pas exécutée. (j'ai mis un pauvre MessageBox.Show("coucou") pour tester)
    J'ai essaye d'ajouter dans ma classe d'items un ICommand OnClickCommand et de remplacer mon binding par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Command="{Binding Path=OnClickCommand}"
    De cette façon, la commande définie dans OnClickCommand est appelée.
    J'en déduis que le datacontext du button est l'item actuel de la liste OpenedWindows... et donc, logiquement, il ne trouve pas LoadFuncCommand ?

    Comment je fais pour spécifier au button de reprendre - juste pour le Command={Binding ...} - le datacontext de l'usercontrol et non pas de l'item ?

    Merci,
    Dotixx

  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 : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : .Net Architect
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 705
    Points : 3 568
    Points
    3 568
    Par défaut
    Oui, dans un item template, le datacontext est l'item en cours.

    Tu peux utiliser un truc du style :

    Command="{Binding DataContext.LoadFuncCommand,RelativeSource={RelativeSource AncestorType={x:Type ListView}}}

    Il va prendre LoadFuncCommand sur le datacontext du 1er ancetre de type ListView.

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

    Informations forums :
    Inscription : Novembre 2011
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Merci beaucoup
    Ça marche tout de suite mieux haha

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

Discussions similaires

  1. Clic sur un bouton qui ne fonctionne pas
    Par Ur-86 dans le forum Composants graphiques
    Réponses: 3
    Dernier message: 14/11/2013, 11h52
  2. [Objective-C] Appel d'un événement sur un bouton qui ne se lance pas
    Par Fooshi dans le forum Objective-C
    Réponses: 0
    Dernier message: 08/02/2013, 10h26
  3. Lien sur un bouton qui ne veut pas fonctionner :/
    Par Rayono dans le forum Flash
    Réponses: 0
    Dernier message: 12/05/2009, 11h14
  4. Editbox d'activeX qui ne réagit pas au backspace
    Par mr.saucisse dans le forum MFC
    Réponses: 18
    Dernier message: 01/03/2006, 18h35
  5. Réponses: 4
    Dernier message: 04/05/2005, 13h54

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