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 :

datagrid et binding sur bouton


Sujet :

Silverlight

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Mars 2010
    Messages : 199
    Points : 83
    Points
    83
    Par défaut datagrid et binding sur bouton
    bonjour

    j'essaye de mettre en place une datagrid avec pour chaque ligne deux boutons: modifier et supprimer.

    Voici le code que j'ai actuellement:
    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
    <data:DataGrid x:Name="dgInfosPersonne" ItemsSource="{Binding ListePersonnes, Mode=TwoWay, UpdateSourceTrigger=Default}" AutoGenerateColumns="False">
    	<data:DataGrid.Columns>
    		<data:DataGridTemplateColumn>
    			<data:DataGridTemplateColumn.CellTemplate>
    				<DataTemplate> 
    					<Button x:Name="btnSupprimerLigne" Content="Supprimer" cmd:ButtonBaseExtensions.Command="{Binding SupprimerLignePersonne}"/>
    				</DataTemplate>
    			</data:DataGridTemplateColumn.CellTemplate>
    		</data:DataGridTemplateColumn>
    		<data:DataGridTextColumn Binding="{Binding nom}" Header="Nom" Width="100" />
    		<data:DataGridTextColumn Binding="{Binding prenom}" Header="Prénom" Width="100" />
    		<data:DataGridTextColumn Binding="{Binding adresse}" Header="Adresse" Width="280" />
    		<data:DataGridTemplateColumn>
    			<data:DataGridTemplateColumn.CellTemplate>
    				<DataTemplate>
    					<Button x:Name="btnModifierLigne" Content="Modifier" cmd:ButtonBaseExtensions.Command="{Binding ModifierLignePersonne}"/>
    				</DataTemplate>
    			</data:DataGridTemplateColumn.CellTemplate>
    		</data:DataGridTemplateColumn>
    	</data:DataGrid.Columns>
    </data:DataGrid>
    là j'affiche une liste de personnes dans mon tableau. les colonnes sont dans l'ordre: supprimer(bouton), nom, prénom, adresse, modifier(bouton).

    j'ai mis mes commandes dans mon viewModel mais elles ne marchent pas.. (elles sont bien initialisées pour ça pas de pb).

    mon but est que sur clic du bouton supprimer par exemple, cela réfère à mon ICommand SupprimerLignePersonne, avec comme paramètre le numéro de ligne selectionné.. si vous avez des infos sur cette manip merci par avance

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Points : 1 561
    Points
    1 561
    Par défaut
    pour commencer... si ton binding est bien défini il n'y a aucun besoin, de définir un bouton modifier, car le binding peut être défini en TwoWay.

    là tu ne fait pas du mvvm, tu fait du je sais pas quoi, mais ca n'y ressemble pas
    ensuite ton bouton supprimer c'est bien de définir la commande, mais ton ICommand suppose l'élément Parameter... le problème c'est que nul part dans la définition de ta DataGrid et du bouton tu ne définir le CommandParameter pour justement fournir un paramètre à cette commande...
    pas étonnant que cela ne marche pas.

    ensuite, il est encore plus inutile d'avoir un bouton supprimer, car la datagrid pour peu que tu active l'option gère l'insertion, la suppression, la modification.

    ensuite pourquoi s'emmerder avec le numéro comme paramètre ? et récupérer l'élément courant dans ton ViewModel se serait pas plus pertirnant ?
    Il faut donc mettre la propriété IsSynchronizedWithCurrentItem de ta datagrid à True, si tu veux qu'elle synchronise l'élément courant sur la vue par défaut de la collection que tu as exposée.

    tout d'abord quel type de collection ou vue à tu exposée dans ton modelView.
    si tu as exposé une ObservableCollection a tu au moins récupéré la vue par défaut sur cette collection, dans ton modelView pour récupérer les sélections d'éléments courant de la part de ta Grid ?

    c'est étrange de procèder de la sorte, tu parle de viewmodel ce qui suppose bien un pattern MVVM, mais tu ne procède absolument pas comme dans les tutoriels MVVM disponibles sur le net, qui exposent tous une collection observable sur laquelle on s'inscrit à l'évènement SelectedItemChanged de la vue par défaut, côté viewmodel, avec la propriété IsSynchronizedWithCurrentItem définie à true côté UI, sur les contrôles de liste (listview, listbox, combobox, datagrid...)

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Mars 2010
    Messages : 199
    Points : 83
    Points
    83
    Par défaut
    si je demande c'est justement parceque je ne sais pas encore comment faire correctement du mvvm avec une datagrid, sinon je n'aurai pas posté

    déjà pour l'option de suppression, que faut il mettre pour que ça soit pris en compte.

    ensuite pour la modif je sais qu'en twoWay on peut directement saisir les changement, le problème est que je doit effectuer un traitement dans mon code métier pour savoir si la saisie est valide, c'est pour cela que j'aimerai passer par l'intermédiaire d'un ICommand, pour savoir si oui ou non je peux modifier..

    pour le paramètre du ICommand ok, j'ai essayé, mais pourquoi le mettre si meme mon ICommand ne passe déjà pas .. pareil, je suppose que l'élément à passer en paramètre serait le numéro de la ligne selectionné, et je viens d'ajouter un binding sur le selectedIndex de ma dataGrid pour avoir ce numéro côté viewModel.. ça ça marche..

    donc j'en suis un peut au même point.. si tu pouvais me montrer niveau code ce que ça donne ça serait bien pour que je puisse avoir les bonnes pratiques mvvm

  4. #4
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Septembre 2006
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2006
    Messages : 389
    Points : 244
    Points
    244
    Par défaut
    slt,

    Moi sur le bouton je met des evenements "OnClick"

    Comme sa en code C# pour recup ta valeur tu fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Class recup = (Class)dataGrid.selectItem
    Et sa te permet même d'afficher des messages de confirm

    A+

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Mars 2010
    Messages : 199
    Points : 83
    Points
    83
    Par défaut
    oui offspring mais le soucis c'est qu'il faut que j'utilise le mvvm. je peux conserver mon objet pour modification dans une propriété, et je binde le selectedItem à cette propriété, mais ce qu'il me faut là et que je n'arrive pas à gérer ce sont les ICommand bindées sur mes bouttons modifier et supprimer.. si j'arrive à avoir ça, j'aurai mon objet stoké, mon index, et donc je pourrai effectuer mes traitements..

    en fait je veux faire ce que tu me propose mais en utilisant mvvm et donc le databinding..

  6. #6
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Mars 2010
    Messages : 199
    Points : 83
    Points
    83
    Par défaut
    Il faut donc mettre la propriété IsSynchronizedWithCurrentItem de ta datagrid à True
    j'ai essayé avec cette méthode pour la suppression, bien que ça ne soit pas exactement ce que je souhaite faire, mais cette propriété n'existe pas pour une datagrid, du moins vs ne me le propose pas..

  7. #7
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Je dirais simplement que tu essaies que ton binding sur ta commande pointe sur un objet de type Personne, qui, je doute contient une commande.

    Essaye ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <Button x:Name="btnSupprimerLigne" Content="Supprimer" cmd:ButtonBaseExtensions.Command="{Binding Path=DataContext.SupprimerLignePersonne, ElementName=dgInfosPersonne}"
    CommandParameter="{Binding Path=Id}" />
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  8. #8
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Mars 2010
    Messages : 199
    Points : 83
    Points
    83
    Par défaut
    non ça ne marche pas non plus

  9. #9
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Elle se trouve dans quelle classe ta commande ?
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  10. #10
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Mars 2010
    Messages : 199
    Points : 83
    Points
    83
    Par défaut
    ma commande est dans mon viewModel. j'ai le data context de mon user control défini comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <UserControl.DataContext>
            <Binding Source="{StaticResource Locator}" Path="ViewModelPersonnesStatic" />
        </UserControl.DataContext>
    par contre j'ai recopié mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Binding Path=DataContext.SupprimerLignePersonne
    dans ma commande..

  11. #11
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Points : 1 561
    Points
    1 561
    Par défaut
    hum inutile de préciser le datacontext dans le binding, si le datacontext de l'objet ou de son parent dans l'arborescence des controles est défini.

    pour la propriété... VS n'expose pas toutes les propriétés dans l'éditeur de propriétés, parfois faut sortir des sentiers et sortir l'éditeur XAML et voir si la propriété existe. Elle peut aussi avoir changer de nom vu que je suppose que c'est la DataGrid de dotnet4, hors moi j'ai toujours utilisée celle du toolkit, j'ai jamais eu besoin de datagrid depuis le passage à dotnet4.

    pour ton code je dirais que coté ViewModel :

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    private ICollectionView _view;
    public ObservableCollection<Person> Personnes {get; private set;}
    public Person CurrentPerson { get { return _view.CurrentItem as Person; } }
     
    private ICommand _command;
    public ICommand SupprimerCommand {
      get {
        if (_command == null) _command = new RelayCommand(x=>CurrentItem!=null, DoSupprim);
        return _command;
      }
    }
     
    public ViewModel() // Constructeur
    {
      Personnes = new ObservableCollection<Person>( /* ta source */ );
      _view = CollectionViewSource.GetDefaultView(Personnes);
      _view.CurrentItemChanged += OnCurrentPersonChanged;
    }
     
    private void OnCurrentPersonChanged(object sender, System.EventArgs e)
    {
    // Ici tu applique des changements si besoin est
      OnPropertyChange(GetPropertyName(x=>CurrentElement)); // Si tu utilise la librairie DvP... sinon jte filerais le code
    }
     
    private void DoSupprim() 
    {
       // Je sais que l'élément dans CurrentPerson est l'élément à supprimer !
       // je supprime cet élément... mon observablecollection et sa vue par défaut vont avertir WPF de rafraichir la liste pour l'affichage quand je l'aurais retirer de la collection
       // un ptit test n'a cependant jamais fait de mal
      if (CurrentPerson == null) return;
      Personnes.Remove(CurrentPerson);
    }
    coté XAML :
    Code xaml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    <data:DataGrid x:Name="dgInfosPersonne" ItemsSource="{Binding Personnes, Mode=TwoWay, UpdateSourceTrigger=Default}" AutoGenerateColumns="False" IsSynchronizedWithCurrentItem="True">
    	<data:DataGrid.Columns>
    		<data:DataGridTemplateColumn>
    			<data:DataGridTemplateColumn.CellTemplate>
    				<DataTemplate> 
    					<Button x:Name="btnSupprimerLigne" Content="Supprimer" Command="{Binding SupprimerCommand}"/>
    				</DataTemplate>
    			</data:DataGridTemplateColumn.CellTemplate>
    		</data:DataGridTemplateColumn>
    		<data:DataGridTextColumn Binding="{Binding nom, Mode=TwoWay}" Header="Nom" Width="100" />
    		<data:DataGridTextColumn Binding="{Binding prenom, Mode=TwoWay}" Header="Prénom" Width="100" />
    		<data:DataGridTextColumn Binding="{Binding adresse, Mode=TwoWay}" Header="Adresse" Width="280" />
    	</data:DataGrid.Columns>
    </data:DataGrid>

    tu notera que j'ai viré tes appels spéciaux à Command. En effet, si tu est en silverlight 3, il faudra le remettre, en silverlight 4 c'est un peu inutile, car l'ajout des commandes est intégrés. Pas aussi complet qu'en WPF mais c'est déjà pas mal.
    Si tu es en silverlight 3 et que l'appel à ta commande ne se fait, je te suggère vivement de vérifier s'il n'y a pas un problème avec le behavior que tu utilise.
    j'ai laissé l'utilisation de la commande supprimer, plus à titre informatif qu'autre chose, et que tu vois un peu la mécanique de tout ce cirque. Cependant comme je t'ai déjà dit, elle est un peu inutile avec les DataGrid...

    Un conseil, pour tout ce qui est XAML utilise Blend, qui est largement plus adapté que Visual Studio, et qui t'exposera plus de propriétés disponibles... il ya un juste un petit bug à déplorer avec le WPF toolkit sous dotnet 3.5SP1 et donc à fortiori sous SL3, avec les datagrid, le fait d'activer les options d'insertion/suppression/modification et le syncwithcurrentItem n'a pas d'effet sur le XAML, il faut donc modifier ces propriétés à la mano dans le xaml.

  12. #12
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Je sais pas avec quoi tu développes mais c'est pas en Silverlight 4 !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CollectionViewSource.GetDefaultView
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     _view.CurrentItemChanged
    n'existent pas...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <Button x:Name="btnSupprimerLigne" Content="Supprimer" Command="{Binding SupprimerCommand}"/>
    Comment cela peut-il fonctionner vu que la classe Person ne contient pas de propriété appelée SupprimerCommand ?

    Ce code créé pour chaque ligne un bouton avec comme contenu "Supprimer" et est bindé sur le DataContext de la Row c'est à dire une Person.

    Il faut explicitement spécifier que la commande appartient au ViewModel (qui doit également être le DataContext du GridView).
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  13. #13
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Points : 1 561
    Points
    1 561
    Par défaut
    exact pour le viewmodel c'est comme qui dirais une petite erreur de ma part... celui la vient de WPF

  14. #14
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Points : 1 561
    Points
    1 561
    Par défaut
    skyounet, tu vois en fait je viens de découvrir que j'étais malade, et bien je devais être fiévreux en écrivant, effectivement j'ai même pas vu que je n'étais pas sur le bon datacontext pour la commande, alors que normalement cela aurait due me sauter aux yeux
    je commence à comprendre pourquoi le code que j'ai produit au bureau aujourd'hui fonctionnait pas... je parie que demain je vais me fendre la poire en me relisant

  15. #15
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Mars 2010
    Messages : 199
    Points : 83
    Points
    83
    Par défaut
    alors alors déjà je suis bien en sl3 avec le mvvm light toolkit.. donc normal que j'utilise les cmd:...

    Pour le moment j'ai utilisé une autre méthode. A côté de ma datagrid j'ai fait une zone permettant l'ajout, la modif et la suppression de lignes dans la datagrid.

    pour ça je stocke le SelectedItem et SelectedIndex dans mom viewModel pour la suppression ou la modif, je joue sur les visibilité des boutons en bindant leurs propriété Visibility.. et je peut faire mes traitements avec mes 3 bouton ajouter modifier supprimer.

    et au moin je peux gérer les erreur plutot que de mettre tous les binding de ma datagrid en mode twoWay et de risquer les erreurs.. après on peut surement gérer les erreurs d'insertions mais bon ça marche très bien comme ça pour le moment.

    je teste tout ce code dès que possible merci

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 53
    Points : 71
    Points
    71
    Par défaut
    Bonjour, je pense avoir trouvé la réponse, il suffit en fait de faire le binding relatif dans le xaml comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Command="{Binding RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}, Path=DataContext.SupprimerTourneePlanifiee}"
    J'espère que cela va profiter aux utilisateurs qui tomberont sur cette discussion.

    NB : ma commande s'appelle SupprimerTourneePlanifiee.

  17. #17
    Membre émérite
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Points : 2 682
    Points
    2 682
    Par défaut
    En Silverlight (SL4), le Binding RelativeSource ne supporte que les paramètres "Self" et "TemplatedParent" mais pas "AncestorType". Peut être pour la version 5
    .
    Pas de question technique en MP, merci.
    .
    Un emulator Gameboy Color pour Windows Phone ?
    c'est moi qui l'ai fait

  18. #18
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Citation Envoyé par helper_moi Voir le message
    Bonjour, je pense avoir trouvé la réponse, il suffit en fait de faire le binding relatif dans le xaml comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Command="{Binding RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}, Path=DataContext.SupprimerTourneePlanifiee}"
    J'espère que cela va profiter aux utilisateurs qui tomberont sur cette discussion.

    NB : ma commande s'appelle SupprimerTourneePlanifiee.
    T'es sur que tu fais du Silverlight
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  19. #19
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 53
    Points : 71
    Points
    71
    Par défaut
    T'es sur que tu fais du Silverlight
    Je ne suis pas sur SilverLight mais simplement sur un projet wpf, ô temps pour moi, j'ai oublié de le préciser.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 08/10/2010, 15h34
  2. Réponses: 2
    Dernier message: 04/05/2010, 15h53
  3. Selection sur bouton dans un Datagrid
    Par chrisdot dans le forum Silverlight
    Réponses: 5
    Dernier message: 30/03/2010, 10h11
  4. Réponses: 1
    Dernier message: 12/05/2009, 09h50
  5. [2005] Datagrid et binding sur proc. stockée ?
    Par cedric_g dans le forum Windows Forms
    Réponses: 11
    Dernier message: 07/08/2007, 17h03

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