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 cellule vide en rouge


Sujet :

Silverlight

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2008
    Messages : 53
    Par défaut DataGrid cellule vide en rouge
    Bonjour,

    Je fais actuellement un datagrid en mode autogenerated colums et je remplie les données.
    Mais lorsque un champs est vide, je veux le mettre en rouge la cellule en question est-ce possible ?

    Merci d'avance

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

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380

  3. #3
    Membre éclairé Avatar de koyot3
    Inscrit en
    Avril 2007
    Messages
    693
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 693
    Par défaut
    regarde du côté des IValueConverter

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2008
    Messages : 53
    Par défaut
    merci je vais essayer

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2008
    Messages : 53
    Par défaut
    voici mon code xaml je n'arrive pas a mettre de Foreground dans mes champs afin de le controler dans mon code behind comment faire ?

    xmlns:c1DataGrid="clr-namespace:C1.Silverlight.DataGrid;assembly=C1.Silverlight.DataGrid"
    <c1DataGrid:C1DataGrid x:Name="deletedItemsGrid" CanUserReorderColumns="true" AutoGenerateColumns="False"
    CanUserResizeColumns="True" CanUserAddRows="false" CanUserEditRows="True" MouseLeftButtonDown="deletedItemsGrid_MouseLeftButtonDown"
    SelectedIndex="0" RowHeight="25">
    <c1DataGrid:C1DataGrid.Columns>
    <c1DataGridataGridTextColumn Header="Title" x:Name="clientTitle" Binding="{Binding Path=titleField}"/>
    </c1DataGrid:C1DataGrid.Columns>
    </c1DataGrid:C1DataGrid>

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

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Citation Envoyé par epiouf Voir le message
    voici mon code xaml je n'arrive pas a mettre de Foreground dans mes champs afin de le controler dans mon code behind comment faire ?
    Est-ce que tu as au moins pris le temps de lire mon post qui LUI te donne la solution ?

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2008
    Messages : 53
    Par défaut
    bonjour,

    oui j'ai pris le temps de le lire et essayer de le faire mais n'arrive pas
    voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        private void itemsGrid_LoadingRow(object sender, C1.Silverlight.DataGrid.DataGridRowEventArgs e)
            {
                if (itemsGrid.Columns[0].Header.ToString() == "Title")
                {
                    if(itemsGrid.Rows[e.Row].DataItem == null)
                    {
                        // foreground
                    }
                }
            }
    la je recupere la colonne on le comparant mais je pense qui'il une methode plus propre.
    Mon souci je ne voie pas comment je peu recuperer les champs dans la column.
    deplus je ne vois meme pas la methode pour changer de couleur

  8. #8
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 69
    Par défaut
    J'ai eu le même problème que toi. Personnellement j'ai pas trouver de méthode pour changer de couleur de façon explicite alors, pour éviter de me prendre la tête, j'ai doublé le nombre de colonne du DataSet que je liai à mon Datagrid.
    Dans une colonne je met la valeur qui doit être affiché, dans la seconde je met la couleur qui doit apparaitre. Ensuite il y a juste à binder le foreground de la colonne du Datagrid à la colonne du dataset possédant la couleur. La modification de la couleur se fera alors en modifiant la valeur de ta colonne dans le dataset.

    J'espère ne pas trop t'avoir embrouillé.

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2008
    Messages : 53
    Par défaut
    je comprend ton idée, mais ma datagrid va avoir 90 columns et va falloir que je test toutes les cellules vides donc du coup au chargement ce n'est pas top.
    mais merci de ton aide.

    quelqu'un d'autre a meilleur solution ? que de dupliquer les columns ?

  10. #10
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 69
    Par défaut
    Au chargement tu pourrais mettre la valeur rouge par defaut (donc pas de problème de temps de chargement). Après tu as juste un évènement à mettre sur la cellule en cours de modification. La solution est pas si lourde que tu le penses.

    Sinon si c'est juste pour modifier la couleur parce que le champs en vide, dans ce cas la c'est qqch de très basique qui doit pouvoir se faire avec un trigger. Tu dois donc pas chercher du coté du C# mais du XAML pour ça.

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2008
    Messages : 53
    Par défaut
    ok merci je vais essayer cela ce weekend.

    Pour plus tard je vais avoirs des cellules qui vont s'ajouter avec d'autre cellule et j'aimerais differentier avec des couleurs et la je commence a faire simple mais je vois aussi pour plus tard.

Discussions similaires

  1. Réponses: 19
    Dernier message: 06/07/2006, 15h35
  2. Afficher les cellules vides...
    Par Invité dans le forum ASP
    Réponses: 1
    Dernier message: 31/08/2005, 17h32
  3. Excel - Cellule vide en effectuant la somme
    Par spopo dans le forum Excel
    Réponses: 14
    Dernier message: 31/08/2005, 16h05
  4. Problemes avec des cellules vides
    Par arsgunner dans le forum ASP
    Réponses: 7
    Dernier message: 14/06/2004, 08h42
  5. [XSL-FO] Table avec cellule vide
    Par JustAGphy dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 12/05/2004, 14h11

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