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 :

Colorer des lignes dans un ListView


Sujet :

Windows Presentation Foundation

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 33
    Par défaut Colorer des lignes dans un ListView
    Bonjour,

    Je suis en train de développer un utilitaire pour un jeu en ligne, et je suis confronté à un problème depuis un moment, j'ai pensé que quelqu'un de compétent pourrai m'aider

    En effet, j'ai un DataSet où je stock toutes mes informations, qui s'affichent dans un ListView grace à un Binding.

    Donc en gros, ça marche, mes lignes s'affichent et tout et tout ... Mais le soucis c'est que je voudrais "tagger" les différents éléments et colorer les lignes en question.

    Comme ceci en fait :



    Et j'aimerais bien que, dans l'idéal juste la cellule avec le nom de la planète en question soit colorée en bleu par exemple. Ou au pire toute la ligne.

    Voici le code XAML ce ma fenêtre
    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
    <ListView Name="listView1" Margin="0,41,0,0" MouseLeftButtonUp="ListViewLeftClicked" MouseRightButtonUp="ListViewRightClicked" FontFamily="Comic Sans MS">
                <ListView.ItemContainerStyle>
                    <Style TargetType="ListViewItem">
                        <Setter Property="Background" Value="{Binding Color}"/>
                    </Style>
                </ListView.ItemContainerStyle>
                <ListView.View>
                    <GridView x:Name="GridView1" >
                        <GridViewColumn DisplayMemberBinding="{Binding Path=dateEspio, StringFormat='d'}">
                            <GridViewColumnHeader Click="SortDateClick" Tag="dateEspio" Content="Date"></GridViewColumnHeader>
                        </GridViewColumn>
                        <GridViewColumn DisplayMemberBinding="{Binding Path=coords}">
                            <GridViewColumnHeader Click="SortStringClick" Tag="coords" Content="Coords"></GridViewColumnHeader>
                        </GridViewColumn>
                    </GridView>
                </ListView.View>
            </ListView>
    Concernant la ligne que j'ai colorée, si j'écris en dur " Value="blue" , ça fonctionne mais je n'arrive pas à faire changer la couleur depuis le code behind.

    En gros mon algo serais ceci :
    POUR TOUT AFFICHAGE d'une row de mon dataset dans le ListView
    SI aAttaquer est VRAI
    Alors colorer la ligne/case en bleu
    FINSI
    FIN POUR
    Dans mon code behind je fais des tests pour deja changer la couleur d'un element selectionné, mais ça ne marche pas...

    J'ai trouvé des tutos pour colorer une ligne sur 2 mais à partir de cela, je n'arrive quand meme pas à faire ce que je veux :/

    ça fait des heures que je cherche, j'ai retourné google, les forums de dev dans toutes les langues et impossible de reussir a faire ça ...

    Si vous avez une piste, une idée, un bout de code, je suis preneur !

    Je vous remercie d'avance !

  2. #2
    Membre éclairé Avatar de poussinphp
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    428
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 428
    Par défaut
    Bonjour,

    ça ne serais pas plutôt "{Binding Path=Color}" plutôt que "{Binding Color}" ?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 81
    Par défaut
    Aurai-tu regardé les CellTemplate, je pense que si tu veux gérer les couleurs jusqu'a la cellule, ca doit être une bonne piste, après je n'ai pas plus approfondi, mais en regardant cette discussion :

    http://stackoverflow.com/questions/1...tview-gridview

    ca a l'air de répondre à ton problème

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 33
    Par défaut
    Citation Envoyé par poussinphp Voir le message
    Bonjour,

    ça ne serais pas plutôt "{Binding Path=Color}" plutôt que "{Binding Color}" ?
    Mais oui, en effet ! Comme quoi j'avais vraiment rien compris au DataBindind ^^

    Au final j'ai donc ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
            <ListView Name="listView1" Margin="0,41,0,0" MouseLeftButtonUp="ListViewLeftClicked" MouseRightButtonUp="ListViewRightClicked" FontFamily="Comic Sans MS">
                <ListView.ItemContainerStyle>
                    <Style TargetType="ListViewItem">
                        <Style.Triggers>
                            <DataTrigger Binding="{Binding Path=noDef}" Value="True">
                                <Setter Property="Foreground" Value="Orange"/>
                            </DataTrigger>
                        </Style.Triggers>
                    </Style>
                </ListView.ItemContainerStyle>
                <ListView.View>
    Là j'essais de faire un mélange avec le lien de jonathan3357, pour ne colorer qu'une cellule précise ( moins "arc-en-ciel" quand même )

    Mais en tout cas, merci pour vos réponses, je vais pouvoir continuer :p

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

Discussions similaires

  1. [Débutant] empêcher la répétition des lignes dans un listview
    Par brino1987 dans le forum C#
    Réponses: 12
    Dernier message: 18/02/2014, 14h29
  2. [JTable] coloration des lignes d'une JTable
    Par MathiasM dans le forum Composants
    Réponses: 3
    Dernier message: 22/06/2009, 11h19
  3. [html/css]coloration des options dans un select
    Par the_edge dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 04/05/2005, 16h19
  4. [C#] Affichage des lignes dans un tableau.
    Par maldufleur dans le forum ASP.NET
    Réponses: 4
    Dernier message: 21/04/2004, 12h28
  5. Couleur des lignes dans DBGrid
    Par eddie dans le forum C++Builder
    Réponses: 5
    Dernier message: 21/06/2002, 19h15

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