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 :

Assigner une valeur sur cellule Datagrid a l'aide d'un clic


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 61
    Par défaut Assigner une valeur sur cellule Datagrid a l'aide d'un clic
    Bonjour ,
    Je suis dans une datagrid et je voudrais dès que l'on clic sur la cellule ,
    afficher le chiffre '1'.

    L'évenement clic n'existe pas et je n'arrive pas recupérer le contenu de la cellule pour mettre un '1' dedans meme sur l'evenement doucle clic

    Ce sont des templates ou j'ai mis des textbox

    Pouvez-vous m'aider ?

  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
    Citation Envoyé par Am34000
    L'évenement clic n'existe pas et je n'arrive pas recupérer le contenu de la cellule pour mettre un '1' dedans meme sur l'evenement doucle clic
    Tu peux t'abonner au Double Clic sur les cellules de cette manière :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <Style TargetType="{x:Type dg:DataGridCell}">
      <EventSetter Event="MouseDoubleClick" Handler="DgCell_MouseDoubleClick" />
    </Style>

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    private void DgCell_MouseDoubleClick(object sender, MouseButtonEventArgs e) {
      // Pour accéder au contenu de la cellule : (((DataGridCell)sender).Content)
     
    }

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 61
    Par défaut
    Dsl pour le mess privé , jai meme pas fait attention
    Non , en fait je crois que c'est moi qui ne sait pas ou le mettre
    j'ai mis l'evennement sur ma datagrid , sinon sur la colonne je n'y arrive pas.

    Mais je pense qu'il faut le mettre sur la colonne.
    En plus il faut que je le mette par code et non par xaml.
    Car ce sont des colonnes que je crée par code

  4. #4
    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
    Non le code suivant est à placer dans les ressources de ta fenêtre ou UserControl ou DataGrid :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <dg:DataGrid.Resources>
      <Style TargetType="{x:Type dg:DataGridCell}">
        <EventSetter Event="MouseDoubleClick" Handler="DgCell_MouseDoubleClick" />
      </Style>
    </dg:DataGrid.Resources>
    Là je l'ai mis dans les ressources du DataGrid.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 61
    Par défaut Assigner une valeur sur cellule Datagrid a l'aide d'un clic
    Oui ca je l'ai mis correctement mais apres j'assigne cet evennement a ma grille comme ca :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <Custom:DataGrid  x:Name="DataGridVentes"  ItemsSource="{Binding}" FrozenColumnCount="2" IsSynchronizedWithCurrentItem="True" 
    ... MouseDoubleClick="DgCell_MouseDoubleClick">

    Et c'est la que je me dis qu'il faut plutot le gerer dans la colonne mais cet evennement n'est pas dans la colonne

    Car en faisant comme ca je recupere bien currentCell mais la proprieté 'Content' n'existe pas.

  6. #6
    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
    Le MouseDoubleClick tel que tu l'a défini est l'évènement de la DataGrid. Ce n'est pas la même chose. Là lorsque tu cliques sur la DataGrid (que ce soit colonne, row, cellule) l'évènement se déclenche.

    Après tu mets des bribes de code et là j'avoue que je ne sais plus ou tu en es, ce que tu as vraiment fait et pas fait...

    Voilà ce que j'aurais fait :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <Custom:DataGrid x:Name="DataGridVentes" ItemsSource="{Binding}" FrozenColumnCount="2" IsSynchronizedWithCurrentItem="True" >
      <Custom:DataGrid.Resources>
        <Style TargetType="{x:Type Custom:DataGridCell}">
          <EventSetter Event="MouseDoubleClick" Handler="DgCell_MouseDoubleClick" />
        </Style>
      </Custom:DataGrid.Resources>
    </Custom:DataGrid>

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    private void DgCell_MouseDoubleClick(object sender, MouseButtonEventArgs e) {
      // Pour accéder au contenu de la cellule : (((DataGridCell)sender).Content)
      MessageBox.Show((((DataGridCell)sender).Content).ToString());
    }
    La propriété Content existe bien sur l'objet DataGridCell (tout du moins avec la version du Toolkit que j'ai et qui est assez récente)

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 26/10/2014, 16h47
  2. Réponses: 3
    Dernier message: 30/09/2013, 20h00
  3. Renvoi valeur useform sur ligne associée à une valeur de cellule
    Par Mag06 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 06/09/2013, 11h06
  4. [XL-2003] Activer une sub sur le changement d'une valeur de cellule
    Par Claude_B dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 19/12/2011, 23h32
  5. [OpenOffice][Tableur] Macro bouton, appliquer une valeur sur plusieurs cellules selectionées
    Par myz-rix dans le forum OpenOffice & LibreOffice
    Réponses: 1
    Dernier message: 23/07/2011, 06h37

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