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 :

Datagrid:Changer la couleur d'une ligne selectionnée


Sujet :

Windows Presentation Foundation

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

    Informations forums :
    Inscription : Avril 2010
    Messages : 61
    Points : 40
    Points
    40
    Par défaut Datagrid:Changer la couleur d'une ligne selectionnée
    Bonjour , Dans une datagrid j'ai plusieurs colonnes dont une case à cocher.

    Quand cette case est cochée , je veux changer la couleur de la ligne ou je me trouve

    Je n'ai pas de problème pour récupérer l'endroit ou je me trouve dans grid mais je ne vois pas comment changer la couleur de la ligne selectionée.


    Qqlun peut-il m'aider ? Merci beaucoup

    Je suis en wpf 3.5 datagrid toolkit

    Merci beaucoup

  2. #2
    Membre éprouvé Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Points : 948
    Points
    948
    Par défaut
    Bonjour je ne sais pas si c'est le plus optimisé mais ca pourrait fonctionner :

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     <Style TargetType="{x:Type dg:DataGridCell}">
                    <Style.Triggers>
                        <Trigger Property="DataGridCell.IsSelected" Value="true">
                            <Setter Property="DataGridCell.Background" Value="Red"/>
                        </Trigger>
                    </Style.Triggers>
    </Style>

    Je pense que ca fonctionne, à adapter suivant les besoins.

  3. #3
    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
    Points : 3 015
    Points
    3 015
    Par défaut
    Salut,

    Citation Envoyé par obito
    Bonjour je ne sais pas si c'est le plus optimisé mais ca pourrait fonctionner
    C'est pensé WPF donc à mon sens c'est la bonne méthode.

    @Am34000
    A toi de l'adapter pour que le trigger soit déclenché lorsque la sélection de la CheckBox est faite. Peut-être en utilisant un DataTrigger.

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

    Informations forums :
    Inscription : Avril 2010
    Messages : 61
    Points : 40
    Points
    40
    Par défaut Changer la couleur d'une DataRow
    Merci !

    Je vais essayer , ceci dit nos utilisateurs ne sont pas tres aisés sur un clavier , donc sur la multiselection je leur épargne la touche CTRL , alors voila ce que j'ai pensé pour changer la couleur de la ligne selectionnée.
    C'est une maniere de faire qui fonctionne mais ....il y en a surement d'autres.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    private void ChkChoix_Click(object sender, RoutedEventArgs e)
            {
                if (((System.Windows.Controls.CheckBox)(sender)).IsChecked == true)
                {
     
                    DataGridRow row = (DataGridRow)DataGridServices.ItemContainerGenerator.ContainerFromIndex(DataGridServices.SelectedIndex);
                    if (row != null)
                    {
                        row.Background = System.Windows.Media.Brushes.SeaGreen;
     
     
                    }
     
                             }

  5. #5
    Membre habitué Avatar de titourock
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2008
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 156
    Points : 190
    Points
    190
    Par défaut
    Citation Envoyé par Am34000 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    private void ChkChoix_Click(object sender, RoutedEventArgs e)
            {
                if (((System.Windows.Controls.CheckBox)(sender)).IsChecked == true)
                {
     
                    DataGridRow row = (DataGridRow)DataGridServices.ItemContainerGenerator.ContainerFromIndex(DataGridServices.SelectedIndex);
                    if (row != null)
                    {
                        row.Background = System.Windows.Media.Brushes.SeaGreen;
     
     
                    }
     
                             }
    Hello

    Personellement, ce qui me gêne c'est l'appel à un évènement pour le clique sur une checkbox alors que tu pourrais utiliser l'attribut "Command". Et pourquoi changer la couleur avec du code behind et non avec un style comme il t'a été proposé précédemment ?.
    Je ne maîtrise pas exceptionnellement bien les styles mais il ne doit pas être trop compliqué d'adapter l'exemple au dessus en passant de cell à row non ?

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

    Informations forums :
    Inscription : Avril 2010
    Messages : 61
    Points : 40
    Points
    40
    Par défaut changer de couleur ligne
    Oui je suis bien d'accord , ca c'est une solution que j'avais trouvé parce que
    je ne voyais pas comment faire etant debutante en WPF

    Mais grace a ce forum j'arrive a combler quelques lacune , je vais essayer ce qu'il y a au dessus qui me semble plus pertinent.

    Merci

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

Discussions similaires

  1. [Débutant] Changer la couleur d'une ligne d'un Datagrid suivant un critère
    Par JetLibre dans le forum VB.NET
    Réponses: 9
    Dernier message: 26/09/2013, 21h49
  2. Changer la couleur d'une ligne d'un datagrid
    Par WriteLN dans le forum Windows Forms
    Réponses: 2
    Dernier message: 28/05/2007, 19h15
  3. [C#] [DataGrid] Modifier la couleur d'une ligne
    Par nalaya dans le forum Windows Forms
    Réponses: 4
    Dernier message: 27/08/2004, 12h11
  4. Réponses: 8
    Dernier message: 14/05/2004, 11h18
  5. [VB6]Changer la couleur d'une ligne d'un ListView
    Par Troopers dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 14/03/2003, 17h02

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