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, background color et row


Sujet :

Silverlight

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut Datagrid, background color et row
    Hello tout le monde

    J'ai une appli SL4 qui permet de suivre une partie de ce qui transite sur le temps réel de ma boite.
    En gros, c'est un Datagrid de 30 colonnes et potentiellement quelques milliers de lignes.
    Le grid est bindé sur une PagedCollectionView<Deal> où Deal est mon entity.

    Chaque ligne de mon grid doit avoir une couleur de fond et une couleur de police en fonction de 2 propriétés de l'objet Deal.

    Un objet Deal est souvent updaté donc je ne peux pas utiliser l'event RowLoading de mon Grid qui n'est appelé qu'à l'affichage de la ligne.

    La solution mise en place par mon collègue est de DataTempler chaque cellule et d'utiliser un converter pour le background color et un autre pour le foreground color.

    Point de vue perf, c'est pas top donc j'essaie d'optimiser ça.
    Je cherche un moyen d'agir au niveau de la ligne et non de chaque cellule.

    Pour la couleur de fond, j'ai modifié le template du DataGridRow pour ajouter un Rectangle:

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    <Rectangle x:Name="BackgroundRectangle"
                                           Grid.ColumnSpan="2"
                                           Fill="#FF581D74"
                                           Opacity="0"
                                           Grid.RowSpan="2" />
    <Rectangle x:Name="InvalidVisualElement"
                                           Grid.ColumnSpan="2"
                                           Fill="#FFF7D8DB"
                                           Opacity="0"
                                           Grid.RowSpan="2" />
    <Rectangle x:Name="BackgroundColorRectangle"
                                           Visibility="Visible"
                                           Grid.ColumnSpan="2"
                                           Grid.RowSpan="2">
                            <tool:BindingUtil.MultiBindings>
                                       <tool:MultiBindings>
                                                 <tool:MultiBinding TargetProperty="Fill"
                                                               Converter="{StaticResource resDealColorConverter}">
                                                          <tool:BindingCollection>
                                                                 <Binding Path="Status" />
                                                                  <Binding Path="HedgeMode" />
                                                          </tool:BindingCollection>
                                                   </tool:MultiBinding>
                                       </tool:MultiBindings>
                            </tool:BindingUtil.MultiBindings>
    </Rectangle>
    <sdk:DataGridRowHeader x:Name="RowHeader"
                                                       sdk:DataGridFrozenGrid.IsFrozen="True"
                                                       Grid.RowSpan="3" />
    <sdk:DataGridCellsPresenter x:Name="CellsPresenter"
                                                            Grid.Column="1"
                                                            Background="Transparent"
                                                            sdk:DataGridFrozenGrid.IsFrozen="True" />
    <sdk:DataGridDetailsPresenter x:Name="DetailsPresenter"
                                                              Grid.Column="1"
                                                              Grid.Row="1" />
    <Rectangle x:Name="BottomGridLine"
                                           Grid.Column="1"
                                           HorizontalAlignment="Stretch"
                                           Height="1"
                                           Grid.Row="2" />
    1- Ca fonctionne pas trop mal mais un objet que je n'ai pas identifié et se trouvant au dessus de Rectangle (z-index parlant) ajoute une opacité et donc la couleur affichée est trop "fade".

    2- J'ai pas d'idée sur comment agir sur le Foreground Color

    Des idées pour ces 2 soucis???

    Merci

  2. #2
    Membre Expert
    Avatar de GuruuMeditation
    Homme Profil pro
    .Net Architect
    Inscrit en
    Octobre 2010
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : .Net Architect
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 705
    Par défaut
    Pour le point 1, il est parfois utile d'utiliser des outils style Silverlight Spy qui permettent de voit plus clair dans le XAML généré.

  3. #3
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Ah, je connaissais pas.
    Je vais regarder

Discussions similaires

  1. [css]longueur en x d'un background-color
    Par totoranky dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 16/11/2005, 00h32
  2. [css] input type submit et background-color
    Par krfa1 dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 22/09/2005, 11h20
  3. background-color
    Par canabral dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 15/09/2005, 15h23
  4. [CSS] @media print & background-color
    Par denisC dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 11/05/2005, 09h21
  5. Réponses: 8
    Dernier message: 09/04/2004, 14h03

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