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 :

Retour à la ligne (wrap?) dans un datagrid


Sujet :

Windows Presentation Foundation

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Mars 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chercheur d'emploi

    Informations forums :
    Inscription : Mars 2017
    Messages : 8
    Points : 29
    Points
    29
    Par défaut Retour à la ligne (wrap?) dans un datagrid
    Bonjour,
    Tout d'abord je débute en C# et en WPF, désolé d'avance si la question est bête et/ou mal formulée :/.
    Dans une application qui se sert de l'API the movie DB pour avoir une liste de films avec différentes infos, je souhaite afficher les données dans un datagrid. J'ai indiqué comme source du datagrid une liste d'objets film avec les infos souhaités. Il me les affiches mais au niveau du résumé (qui peut être long) il me mets tout sur une seule ligne, je voudrai que le texte s'adapte à la largeur de la colonne, au besoin agrandir la hauteur de la ligne pour faire tenir tout le texte dans la cellule.



    Le code xaml

    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
    <Window
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
            xmlns:local="clr-namespace:MovieDbAPIClient"
            xmlns:System="clr-namespace:System;assembly=mscorlib" x:Class="MovieDbAPIClient.MainWindow"
            mc:Ignorable="d"
            Title="MainWindow" Height="1019" Width="1526">
        <Grid RenderTransformOrigin="0.592,0.497">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="114*"/>
                <ColumnDefinition Width="19*"/>
                <ColumnDefinition Width="176*"/>
                <ColumnDefinition Width="97*"/>
                <ColumnDefinition Width="93*"/>
                <ColumnDefinition Width="18*"/>
            </Grid.ColumnDefinitions>
            <Grid.RowDefinitions>
                <RowDefinition Height="11*"/>
                <RowDefinition Height="263*"/>
                <RowDefinition Height="46*"/>
            </Grid.RowDefinitions>
            <TreeView x:Name="treeView" Margin="10,0,1,0" Grid.Row="1">
                <TreeView.ItemTemplate>
                    <DataTemplate>
                    </DataTemplate>
                </TreeView.ItemTemplate>
     
     
            </TreeView>
            <DataGrid x:Name="dataGrid" Grid.Row="1" Grid.Column="2" Grid.ColumnSpan="3" IsReadOnly="True" SelectionMode="Single"  />
     
            <Button x:Name="buttonprecedent" Content="Précédent" Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}" HorizontalAlignment="Stretch" Margin="0,14,5,10" Grid.Row="2" VerticalAlignment="Stretch" RenderTransformOrigin="0.785,0.498" Grid.Column="3"/>
            <Button x:Name="buttonsuivant" Content="Suivant" Grid.Column="4" Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}" HorizontalAlignment="Stretch" Margin="0,14,6,10" Grid.Row="2" VerticalAlignment="Stretch"/>
            <Label x:Name="labelnbresultats" Content="" Margin="30,12,0,8" Grid.Row="2" RenderTransformOrigin="0.223,0.407" HorizontalAlignment="Center" VerticalAlignment="Center" Width="103" Grid.ColumnSpan="2"/>
            <Label x:Name="labelpage" Content="" Grid.Column="2" Grid.Row="2" Margin="66,12,0,8" VerticalAlignment="Center"/>
     
        </Grid>
    </Window>
    La classe film:

    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
      class film
        {
            string titre;
            string genre;
            string dateDeSortie;
            string synopsis;
     
            public film(string titre, string genre, string dateDeSortie, string synopsis)
            {
                this.titre = titre;
                this.genre = genre;
                this.dateDeSortie = dateDeSortie;
                this.synopsis= synopsis;
     
            }
     
            public string Titre
            {
                get
                {
                    return titre;
                }
     
                set
                {
                    titre = value;
                }
            }
     
            public string Genre
            {
                get
                {
                    return genre;
                }
     
                set
                {
                    genre = value;
                }
            }
     
            public string DateDeSortie
            {
                get
                {
                    return dateDeSortie;
                }
     
                set
                {
                    dateDeSortie = value;
                }
            }
     
            public string Synopsis
            {
                get
                {
                    return synopsis;
                }
     
                set
                {
                    synopsis = value;
                }
            }
     
     
        }
    Je suis bloqué depuis hier j'aurai besoin d'un coup de main

  2. #2
    Membre confirmé Avatar de WaterTwelve21
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2015
    Messages
    270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2015
    Messages : 270
    Points : 461
    Points
    461
    Par défaut
    Salut ,

    C'est possible , mais je ne comprend pas , tu rempli ta datagrid par codebehind? Je ne voit pas les bindings sur ta classe .

    il suffit de jouer sur l'ElementStyle de ta column , comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
      <DataGridTextColumn Header="Resume" Binding="{Binding Resume}" Width="200"  >
                        <DataGridTextColumn.ElementStyle>
                            <Style>
                                <Setter Property="TextBlock.TextWrapping" Value="Wrap" />
                            </Style>
                        </DataGridTextColumn.ElementStyle>
                    </DataGridTextColumn>
    Important de specifier une Width initiale .

    Bon code.
    throw new NoSignatureException();

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Mars 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chercheur d'emploi

    Informations forums :
    Inscription : Mars 2017
    Messages : 8
    Points : 29
    Points
    29
    Par défaut
    Oui effectivement j'ai rempli ma datagrid par le codebehind, je me rend compte au fur à mesure de mes recherches que c'est pas du tout à faire je passe à côté de tout ce qui fait le wpf :/.
    du coup je suis en train de potasser le binding, merci pour le coup de pouce.

  4. #4
    Membre confirmé Avatar de WaterTwelve21
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2015
    Messages
    270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2015
    Messages : 270
    Points : 461
    Points
    461
    Par défaut
    Oui , tu as tout entre tes mains pour faire ta DataGrid depuis le XAML ( ce qui est recommandé ! ).

    Bon code
    throw new NoSignatureException();

Discussions similaires

  1. retour à la ligne automatique dans php-eclipse
    Par Severance dans le forum Eclipse PHP
    Réponses: 4
    Dernier message: 29/03/2009, 16h14
  2. [JS][TAGLIBS]Retour à la ligne intempestif dans le code source
    Par Alexandre T dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 18/05/2007, 13h55
  3. retour à la ligne automatique dans un TCanvas
    Par richard038 dans le forum API, COM et SDKs
    Réponses: 12
    Dernier message: 27/03/2006, 21h39
  4. Retour à la ligne automatique dans les div
    Par Delphy113 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 15/02/2006, 10h42
  5. retour à la ligne auto dans un bête tableau
    Par junty dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 13/10/2005, 17h15

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