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 :

[Visual Studio 2010 C#] Affichage multiple sur un événement dataGridSelectionChanged


Sujet :

Silverlight

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    206
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 206
    Par défaut [Visual Studio 2010 C#] Affichage multiple sur un événement dataGridSelectionChanged
    Bonjour,

    j'ai besoin d'aide pour quelque chose que je ne comprends vraiment pas alors que je pense que c'est simple au départ. A partir de ma mainPage qui contient ma DataGrid définie comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     <sdk:DataGrid 
                Name="dataGrid1" HorizontalAlignment="Left" Grid.Row="1" AutoGenerateColumns="False" Height="700" Width="1200"                
                      RowBackground="#999999" AlternatingRowBackground="#CCCCCC" 
                      RowHeight="25" GridLinesVisibility="Horizontal" HeadersVisibility="All" HorizontalGridLinesBrush="Blue" SelectionChanged="dataGrid1_SelectionChanged">   
     
                <sdk:DataGrid.Columns>                
                    <sdk:DataGridTextColumn Binding="{Binding civilite}"           x:Name="colonneCivilite" Header="Civilité" />    
                    <sdk:DataGridTextColumn Binding="{Binding nom}"                x:Name="colonneNom"      Header="Nom" />
    je voudrais déclancher l'affichage d'une ChildWindow (pour l'instant toute simple c'est-à-dire celle qui est fournie de base avec Ok et annuler)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     private void dataGrid1_SelectionChanged(object sender, SelectionChangedEventArgs e)
            {            
                ModificationDiplome md = new ModificationDiplome();
                MessageBox.Show("SelectedIndex " + dataGrid1.SelectedIndex);
                md.Show();
            }
    mais à l'execution elle s'affiche deux fois. J'ai eu même la curiosité de d'ajouter MessageBox.Show("SelectedIndex " + dataGrid1.SelectedIndex) et lorsque je clique sur une ligne de ma dataGrid j'ai deux messageBox qui s'affichent : le premier qui me donne bien le numéro de ligne cliqué (et c'est avec ça que je veux travailler par la suite) pui un deuxième messageBox avec -1. Quelqu'un peut-il m'expliquer la raison pour laquelle j'ai deux affichages alors que je n'en attends qu'un?

    Merci beaucoup

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Ca fait la même chose si tu n'affiches pas la ChildWindow ? Si ce n'est pas le cas, c'est probablement le fait d'afficher la ChildWindow qui déselectionne la ligne (mais ça me semble bizarre quand même...)

    De toutes façons tu peux toujours ajouter un test sur SelectedIndex pour vérifier si un élément est sélectionné

  3. #3
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    206
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 206
    Par défaut
    Citation Envoyé par tomlev Voir le message
    Ca fait la même chose si tu n'affiches pas la ChildWindow ? Si ce n'est pas le cas, c'est probablement le fait d'afficher la ChildWindow qui déselectionne la ligne (mais ça me semble bizarre quand même...)

    De toutes façons tu peux toujours ajouter un test sur SelectedIndex pour vérifier si un élément est sélectionné

    je viens de tester ce que tu m'as suggéré en mettant en commentaire l'affichage de la ChildWindow
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    private void dataGrid1_SelectionChanged(object sender, SelectionChangedEventArgs e)
            {            
                ModificationDiplome md = new ModificationDiplome();
                MessageBox.Show("SelectedIndex " + dataGrid1.SelectedIndex);
                //md.Show();
            }
    si je clique sur la deuxième ligne de ma dataGrid j'ai SelectedIndex 1 et de suite selectedIndex -1
    Donc ce n'est pas l'affichage de la childWindow qui pose problème et je crois avoir compris pourquoi.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <sdk:DataGrid 
                Name="dataGrid1" HorizontalAlignment="Left" Grid.Row="1" AutoGenerateColumns="False" Height="700" Width="1200"                
                      RowBackground="#999999" AlternatingRowBackground="#CCCCCC" 
                      RowHeight="25" GridLinesVisibility="Horizontal" HeadersVisibility="All" HorizontalGridLinesBrush="Blue" SelectionChanged="dataGrid1_SelectionChanged" GotFocus="dataGrid1_GotFocus">
    Je veux associer ma dataGrid à deux événements. Lorsque je reviens d'une autre childWindow je veux déclencher un événement 1 et lorsque sur ma dataGrid je choisis un enregistrment je veux déclencher un autre événement. Lorsque ma dataGrid a le focus j'ai ce que je veux par contre lorsque la selection a changé j'ai les deux événements. Je vais me creuser la tête. Merci en tout cas.

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Tu fais quoi dans le GotFocus ?

  5. #5
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    206
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 206
    Par défaut
    Citation Envoyé par tomlev Voir le message
    Tu fais quoi dans le GotFocus ?
    Re,

    en fait lorsque mon application démarre, elle ouvre une table et affiche dans ma dataGrid de la mainPage le résultat d'une requete MySql. Cela se passe bien. De cette mainPage je peux soit ouvrir une childWindow qui me permet de sasir les champs de ma table soit je peux retourner dans ma main page. Et si je retourne dans ma mainPage je veux qu'elle affiche ma dataGrid avec ce qui a été saisi juste avant. Pour faire cela je n'ai rien trouvé de mieux que de passer par le gotFocus. Mais apparemment le fait de changer de ligne dans la dataGrid déclenche de nouveau le gotFocus. Je fais surement une erreur mais je n'ai pas trouvé d'exemple sur net par rapport à ce que je veux faire.

    Merci pour ton aide

  6. #6
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    206
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 206
    Par défaut
    j'ai trouvé une solution qui me convient pour faire cohéxister un GotFocus et un SelectionChanged pour une même dataGrid L'inconvénient était que lorsque je quittais ma childWindow pour retourner dans la mainPage je voulais un réaffichage de mes modifications faites à partir de ma childWindow Ce qui avait comme répercution de provoquer un événement selectionChanged qui n'était pour moi pas prévu puisqu'il ne vennait pas de la souris J'ai donc dû mettre en place des variables booléennes pour gérer cet événement indésirable Merci de m'avoir lu et d'avoir essayé de m'aider La discussion est donc close

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

Discussions similaires

  1. Rapport .rdlc Visual Studio 2010, problème affichage image png
    Par tomtom3471 dans le forum Visual Studio
    Réponses: 0
    Dernier message: 15/09/2011, 18h00
  2. Réponses: 1
    Dernier message: 24/06/2010, 16h55

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