none
Trier les items d'une listbox RRS feed

  • Question

  • Bonjour.

    Mon application possède une listbox composée d'éléments bindés (chaque élément étant composé de trois textblock : tâche - date - heure). Y a t-il un moyen de faire en sorte que les éléments soient automatiquement triés par date/heure ? (par ordre croissant)

    Merci d'avance pour votre aide.

     

     

    Cordialement.

    dimanche 27 mars 2011 21:26

Réponses

  • Bonjour,

    Voici un petit exemple comment trier par ordre croissant :

    On va imaginer le tri sur la classe suivante ;

    public

     

    class Task

    {

     

    public String Tache { get; set

    ; }

    }

    et la création de ta liste de Task tu va trier par du Linq

    

    List

    <Task> liste = new List<Task>();

    liste.Add(

    new Task() { Tache = "test2" });

    liste.Add(

    new Task() { Tache = "test3" });

    liste.Add(

    new Task() { Tache = "test1" });

    liste = liste.OrderBy(tache => tache.Tache).ToList();

    c'est la ligne en gras qui est importante. Ceci n'est qu'un exemple et tu peux l'adapter à ton cas.

    


    Cordialement, Pascal.
    • Marqué comme réponse kemar2012 lundi 28 mars 2011 14:20
    lundi 28 mars 2011 08:19
  • Bonjour Pascal et merci pour ta réponse.

    Tu m'as mis dans la bonne voie et j'ai finalement trié ma liste par date/heure de la façon suivante :

    IEnumerable<tache> query = taches.OrderBy(tache => tache.tDate).ThenBy(tache => tache.tTime));
    listbox.ItemsSource = query;
    

    Ça fonctionne très bien c'est le principal :)

    Merci !

     

     

     

    Cordialement.

    • Marqué comme réponse kemar2012 lundi 28 mars 2011 14:19
    lundi 28 mars 2011 14:18

Toutes les réponses

  • Bonjour,

    Voici un petit exemple comment trier par ordre croissant :

    On va imaginer le tri sur la classe suivante ;

    public

     

    class Task

    {

     

    public String Tache { get; set

    ; }

    }

    et la création de ta liste de Task tu va trier par du Linq

    

    List

    <Task> liste = new List<Task>();

    liste.Add(

    new Task() { Tache = "test2" });

    liste.Add(

    new Task() { Tache = "test3" });

    liste.Add(

    new Task() { Tache = "test1" });

    liste = liste.OrderBy(tache => tache.Tache).ToList();

    c'est la ligne en gras qui est importante. Ceci n'est qu'un exemple et tu peux l'adapter à ton cas.

    


    Cordialement, Pascal.
    • Marqué comme réponse kemar2012 lundi 28 mars 2011 14:20
    lundi 28 mars 2011 08:19
  • Bonjour Pascal et merci pour ta réponse.

    Tu m'as mis dans la bonne voie et j'ai finalement trié ma liste par date/heure de la façon suivante :

    IEnumerable<tache> query = taches.OrderBy(tache => tache.tDate).ThenBy(tache => tache.tTime));
    listbox.ItemsSource = query;
    

    Ça fonctionne très bien c'est le principal :)

    Merci !

     

     

     

    Cordialement.

    • Marqué comme réponse kemar2012 lundi 28 mars 2011 14:19
    lundi 28 mars 2011 14:18