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 :

ListView qui change de taille mais n'affiche pas le contenu d'une ObservableCollection


Sujet :

Windows Presentation Foundation

  1. #1
    Candidat au Club
    Inscrit en
    Octobre 2013
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Octobre 2013
    Messages : 3
    Points : 2
    Points
    2
    Par défaut ListView qui change de taille mais n'affiche pas le contenu d'une ObservableCollection
    Bonjour à tous !

    Voici mon problème : je souhaite afficher le contenu d'une ObservableCollection dans une listview, le souci est que la taille de ma liste change bien en fonction de la taille de l'observable collection (par exemple 13 lignes si ma collection a récupéré 13 Projets) mais les lignes n'affichent rien.

    Exemple contenu de l'ObservableCollection :

    Nom : contenu_collection.png
Affichages : 210
Taille : 18,8 Ko

    Résultat tableau :

    Nom : tab_vide.png
Affichages : 209
Taille : 3,7 Ko


    Code behind :
    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
    public partial class WinProjectsList : Page, INotifyPropertyChanged, IRefreshPage
    	{
              ...
     
               public ObservableCollection<Projet> _testProj;
                     public ObservableCollection<Projet> TestProj
                     {
                           get { return this._testProj; }
                           set
                           {
                                _testProj = value;
                                RaisePropertyChanged("TestProj");
                           }
                     }
     
     
                 public class Projet
                {
                    public int ProjetID;
                    public string ProjetTitre;
                    public bool ProjetLieOuNon;
     
                    public Projet(int pId, string PTitle, bool PBound)
                    {
                        ProjetID = pId;
                        ProjetTitre = PTitle;
                        ProjetLieOuNon = PBound;
                    }
                }
     
    ...
     
    }
    Xaml:
    Code xaml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <ListView x:Name="lstNames" Margin="5,5,5,5" Grid.Column="1" Grid.Row="0" ItemsSource="{Binding TestProj}">
     
                    <ListView.View>
                        <GridView x:Name="grdNames">
                            <GridViewColumn Header="ProjetTitre"  DisplayMemberBinding="{Binding ProjetTitre}"/>  
                        </GridView>
     
                    </ListView.View>
                </ListView>

    Si quelqu'un pouvait me dire ce qu'il manque, je lui en serai très reconnaissant !

  2. #2
    Membre régulier
    Homme Profil pro
    Apprenti Informatique
    Inscrit en
    Avril 2009
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti Informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2009
    Messages : 83
    Points : 91
    Points
    91
    Par défaut
    Bonjour,

    Je débute aussi en xaml donc mes conseils sont à prendre avec des pincettes mais serait il possible qu'il manque simplement le getter du titre genre :

    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
     
    public class Projet
                {
                    public int id;
                    public string titre;
                    public bool isBound;
     
                    public string Titre{
                          get{
                                return titre;
                          }
                    }
     
                    public Projet(int id, string titre, bool isBound)
                    {
                        this.id = id;
                        this.titre = titre;
                        this.isBound = isBound;
                    }
                }
    Puis tu set le binding à Titre et non pas titre ?

  3. #3
    Candidat au Club
    Inscrit en
    Octobre 2013
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Octobre 2013
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Merci pour ta remarque cfried, j'ai bien rajouté mes getter et setter comme ceci :

    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
     
     
                private ObservableCollection<Projet> _testProj;
                public ObservableCollection<Projet> TestProj  
                {
                    get { return _testProj; }
                    set
                    {
                        _testProj = value;
                        RaisePropertyChanged("TestProj");
                    }
                }
     
     
               public class Projet
                {
                    public int _projetID;
                    public string _projetTitre;
                    public bool _projetLieOuNon;
     
                    public Projet(int pId, string PTitle, bool PBound)
                    {
                        this.ProjetID = pId;
                        this.ProjetTitre = PTitle;
                        this.ProjetLieOuNon = PBound;
                    }
     
     
     
                    public string ProjetTitre
                    {
                        get { return _projetTitre; }
                        set { _projetTitre = value; }
                    }
     
     
                    public int ProjetID
                    {
                        get { return _projetID; }
                        set { _projetID = value; }
                    }
     
     
                    public bool ProjetLieOuNon
                    {
                        get { return _projetLieOuNon; }
                        set { _projetLieOuNon = value; }
                    }
     
                }
    Cependant je n'ai toujours rien d'affiché !

  4. #4
    Membre expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 3 958
    Points
    3 958
    Par défaut
    Est-ce que les propriétés de tes objets sont bien settées au moment où la collection est bindée ?

    Si ce n'est pas le cas il faudrait setter la collection plus tard, après alimentation.

    En passant sache que ListView est obsolète en WPF, elle a été remplacée par la DataGrid.
    Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
    Mon blog : pragmateek.com

  5. #5
    Candidat au Club
    Inscrit en
    Octobre 2013
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Octobre 2013
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    J'ai résolu mon souci, cela ce situait du coté xaml où mon DisplayMemberBinding était mal déclaré :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    <ListView.View>
                        <GridView>
                            <GridViewColumn Header="ProjetTitre"  DisplayMemberBinding="{Binding Path=ProjetTitre}"/>  
                        </GridView>
    </ListView.View>

    Merci pour l'aide apporté

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 04/09/2014, 07h33
  2. boucle dans une matrice qui change de taille
    Par Ryma_d3 dans le forum MATLAB
    Réponses: 3
    Dernier message: 20/03/2012, 14h35
  3. bouton qui change la taille d'un div..
    Par bilcosby dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 15/10/2009, 14h07
  4. [HttpUnit] upload file - le fichier qui change de taille
    Par Yannos94 dans le forum Tests et Performance
    Réponses: 1
    Dernier message: 05/09/2007, 14h29
  5. Réponses: 3
    Dernier message: 22/07/2002, 14h19

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