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 :

[WPF] Listview tri et databinding


Sujet :

Windows Presentation Foundation

  1. #1
    Membre averti

    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 214
    Points : 341
    Points
    341
    Par défaut [WPF] Listview tri et databinding
    Bonjour,

    Encore une question sur WPF et le databinding (c'est la mode en ce moment il paraît ). J'ai donc un ListView bindé sur une ObservableCollection. Jusque là tout va bien. J'ai également un GridView afin de présenter ma collections d'items avec plusieurs colonnes.

    J'ai voulu implémenter un tri sur ces colonnes, pour cela, je me suis basé sur cet article http://blogs.msdn.com/atc_avalon_tea...03/542803.aspx.

    Mon problème est le suivant:

    Collection non triée:

    --------------------
    | col1 | col2 | col3 |
    --------------------
    | item1... |
    --------------------
    | item2...[courant] |
    --------------------
    | item3... |
    --------------------
    | item4... |
    --------------------

    A cet instant, disons que mon élément courant est item2. L'élement qui suit item2 et item3. J'applique ensuite un tri, en cliquant sur une colonne :

    --------------------
    | col1 | col2 | col3 |
    --------------------
    | item4... |
    --------------------
    | item3... |
    --------------------
    | item2... [courant]|
    --------------------
    | item1... |
    --------------------

    Maintenant, l'item suivant item2 et item1, mais comment je peux m'en rendre compte au niveau de mes données bindées (je veux dire dans mon ObservableCollection), sachant que le tri ne s'applique que sur la vue.

    Je cherche une solution propre ne compromettant pas l'indépendance données/UI que m'apporte le binding.

    Merci de votre aide,

    Jérémy
    www.japf.fr mon blog sur WPF et .Net

  2. #2
    Membre averti

    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 214
    Points : 341
    Points
    341
    Par défaut
    Aucune idée ?

    Je me demandais si je pourrai pas peut être trier la collection elle-même (mon objet ObservableCollection) et faire en sorte qu'a chaque tri, le binding remette à jour ma collection au niveau de l'affichage...

    Cependant, je ne sais pas ni si c'est possible, ni si c'est efficace...
    www.japf.fr mon blog sur WPF et .Net

  3. #3
    Membre averti

    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 214
    Points : 341
    Points
    341
    Par défaut
    Un petit hop, si jamais quelqu'un a une idée lumineuse je suis preneur, car à la minute présente, j'ai toujours pas résolu mon soucis...
    www.japf.fr mon blog sur WPF et .Net

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Citation Envoyé par Jérem22 Voir le message
    mais comment je peux m'en rendre compte au niveau de mes données bindées (je veux dire dans mon ObservableCollection)
    Pour quoi faire ? Je veux dire, quel est l'intérêt pour ta source de données ? Aucun. Cette source de données se contente de représenter un ensemble de données. Le fait qu'à l'affichage, cette source soit triée, cela ne change rien/importe peu....

  5. #5
    Membre averti

    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 214
    Points : 341
    Points
    341
    Par défaut
    En fait dans mon cas ça change un peu... J'explique ! Ma collection est en fait une list de lecture de musique.

    J'ai, associé à ma collection, un bouton "Suivant" et un "Précédent". Je surligne l'item courant en jaune. Si ma collection n'est pas trié, quand je fais "Suivant", je regarde dans ma collection l'item courant et je prend le suivent (item[i + 1]).

    Quand j'applique un tri sur ma vue, je ne peux plus faire ça vu que les items ne sont pas dans le même ordre. Je cherche donc une manière de résoudre ça.

    Si ce n'est pas assez clair, je suis prêt à expliquer encore d'avantage.

    Merci d'avance.
    www.japf.fr mon blog sur WPF et .Net

  6. #6
    Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Novembre 2006
    Messages : 77
    Points : 61
    Points
    61
    Par défaut
    si tu affectes la propriété Tag de chaque subItem du listView. ca doit être possible d'avoir une référence sur le bonne objet de ta liste...

  7. #7
    Membre averti

    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 214
    Points : 341
    Points
    341
    Par défaut
    Que veux tu dire par là ? Que pourrai-je mettre dans le la propriété Tag pour m'en sortir ?
    www.japf.fr mon blog sur WPF et .Net

  8. #8
    Membre averti
    Avatar de UNi[FR]
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2002
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Juin 2002
    Messages : 340
    Points : 448
    Points
    448
    Par défaut
    Dans tag tu peux mettre ce que tu veux il est de type Object
    Gnarf !
    Mon C.V.
    Culture agile && Software Craftsmanship && (.NET {VS 2019 && WPF} || PHP {(PHPStorm || VS Code) && (Docker)})

    Pensez au TAG

  9. #9
    Membre averti

    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 214
    Points : 341
    Points
    341
    Par défaut
    Oui, ça je sais. Mais que mettre dedans dans mon cas pour résoudre mon soucis ?
    www.japf.fr mon blog sur WPF et .Net

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Citation Envoyé par Jérem22 Voir le message
    En fait dans mon cas ça change un peu... J'explique ! Ma collection est en fait une list de lecture de musique.

    J'ai, associé à ma collection, un bouton "Suivant" et un "Précédent". Je surligne l'item courant en jaune. Si ma collection n'est pas trié, quand je fais "Suivant", je regarde dans ma collection l'item courant et je prend le suivent (item[i + 1]).
    Sur le Tag de chaque élément de ta ListView, tu stockes ton objet associé à cet élément. Ensuite, sur le clic de Suivant/Précédent, tu récupères l'élément sélectionné puis tu trouves le tag et tu l'utilises

Discussions similaires

  1. [WPF] ListView + MouseDoubleClick
    Par JuTs dans le forum Framework .NET
    Réponses: 4
    Dernier message: 19/11/2007, 17h15
  2. [WPF] Listview, vue personnalisée
    Par Jérem22 dans le forum C#
    Réponses: 6
    Dernier message: 06/11/2007, 11h57
  3. Listview trié sur plus d'une colonne
    Par Duan dans le forum Delphi
    Réponses: 2
    Dernier message: 26/05/2006, 03h29
  4. [ListView] tri particulier (comparaison numérique)
    Par Cybher dans le forum C++Builder
    Réponses: 16
    Dernier message: 28/07/2005, 14h12
  5. [VB6][ListView] Tri sur chaque colonne
    Par frlap dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 26/05/2004, 11h20

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