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 :

Localisation des colonnes d’une DataGrid


Sujet :

Silverlight

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2006
    Messages : 51
    Par défaut Localisation des colonnes d’une DataGrid
    Bonjour tout le monde,

    Je suis en pleine traduction de mon application grace à l'exellent tutoriel de Benjamin Roux.
    J'ai un problème avec la traduction des noms des colonnes. J’ai vite comprit que le Binding n’était pas possible pour le Header et j’ai donc fait comme expliqué dans le tuto. J’ai crée la propriété Name de mes colonnes pour redéfinir le texte par la ressource :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
     <sdk:DataGridTextColumn Binding="{Binding nbr}" CanUserReorder="True" CanUserResize="True" CanUserSort="True" Header="Me traduire" Width="Auto" x:Name="C_Quantite" />
    Coté code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C_Quantite.Header = Languages.Traduction.UI_Modif;
    Quand je lance mon application, C_Quantite n’est pas définit, il a une valeur « null ». Je ne vois pas ce que j’ai fais de moins par rapport au tuto !
    Quelqu’un aurait une idée pour ce problème ?

    Merci d’avance

  2. #2
    Membre émérite Avatar de jmix90
    Homme Profil pro
    Consultant .Net
    Inscrit en
    Juillet 2007
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 576
    Par défaut
    Hello,

    Est-ce que ce bout de code ne fonctionne pas:
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <c:DataGridTextColumn>
      <sdk:DataGridTextColumn.Header>
        <TextBlock Text="{Binding MonTexte}"/>
      </sdk:DataGridTextColumn.Header>
    </sdk:DataGridTextColumn>

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2006
    Messages : 51
    Par défaut
    J'ai tenté ceci :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
            <sdk:DataGrid AutoGenerateColumns="False" Height="100" Name="dataGrid1" Width="120">
                <sdk:DataGrid.Columns>
                    <sdk:DataGridTemplateColumn CanUserReorder="True" CanUserResize="True" CanUserSort="True" Width="Auto">
                        <sdk:DataGridTemplateColumn.Header>
                            <TextBlock Text="{Binding MonTexte}"/>
                        </sdk:DataGridTemplateColumn.Header>
                    </sdk:DataGridTemplateColumn>
                </sdk:DataGrid.Columns>
            </sdk:DataGrid>
    J'ai tenté une colonne en DataGridTemplateColumn et en DataGridTextColumn mais à chaque fois j'ai eu cette erreur au niveau du <TextBlock Text="{Binding MonTexte}"/> :
    Content does not support UIElement; use ContentTemplate instead.
    J'ai fais quelque chose de mal monsieur ?

    Merci d'avance

  4. #4
    Membre actif Avatar de freezer08
    Homme Profil pro
    Inscrit en
    Février 2011
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations forums :
    Inscription : Février 2011
    Messages : 59
    Par défaut
    Les DataGrid sont vraiment pénibles pour ça ... La propriété Header n'est pas une DependencyProperty, tu ne peux donc pas binder directement dessus.

    L'astuce est de passer par les styles :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <data:DataGridTemplateColumn.HeaderStyle>
      <Style TargetType="dataprimitives:DataGridColumnHeader">
        <Setter Property="Template">
          <Setter.Value>
            <ControlTemplate>                                                                                       
              <TextBlock 
    		    Text="{Binding ColumnName, Source={StaticResource LocalizedStrings}}" />
            </ControlTemplate>
          </Setter.Value>
        </Setter>
      </Style>
    </data:DataGridTemplateColumn.HeaderStyle>

  5. #5
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2006
    Messages : 51
    Par défaut
    Je suis alors obligé de passer par des colonnes en format templates ?

  6. #6
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Citation Envoyé par narfight Voir le message
    Je suis alors obligé de passer par des colonnes en format templates ?
    C'est-à-dire ? Que veux-tu dire par là ?

  7. #7
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2006
    Messages : 51
    Par défaut
    Dans l'exemple donné par freezer08, il semble travailler depuis un DataGridTemplateColumn. Je me demande alors si c'est une obligation.

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

Discussions similaires

  1. Comment créer dynamiquement des colonnes à un datagrid par binding
    Par zoaax dans le forum Windows Presentation Foundation
    Réponses: 0
    Dernier message: 05/01/2011, 13h54
  2. [Dojo] Masquer dynamiquement des colonnes dans dataGrid
    Par bellenthan dans le forum Bibliothèques & Frameworks
    Réponses: 2
    Dernier message: 14/09/2010, 11h29
  3. Réponses: 1
    Dernier message: 08/07/2008, 10h37
  4. Réponses: 10
    Dernier message: 20/04/2007, 23h16
  5. Largeur des colonnes de datagrid
    Par ShortcutZ dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 17/12/2005, 19h33

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