Con risposta ComboBox Sort

  • martedì 10 luglio 2012 14:30
     
     

    Salve a Tutti..

    C'è qualcuno che potrebbe aiutarmi con la Sort della ComboBox... 

    Devo ordinare gli elementi di una ComboBox in ordine Discendente !!

Tutte le risposte

  • martedì 10 luglio 2012 15:03
     
     Con risposta Contiene codice

    La proprietà Sorted della combobox ordina solo in maniera ascendente.

    Dorvresti quindi procedere valorizzando non la collezione degli items, ma utilizzando la proprietà DataSource.

    Se ad esempio gli elementi che devono apparire in ordine discendente nella combobox sono stringhe, potresti creare una lista di stringhe, inserirli li, ordinare la lista e quindi invertire l'ordinamento. Tradotto in codice diventa:

    List<string> elenco = new List<string>(){"d", "F", "a"};
    elenco.Sort();
    elenco.Reverse();
    comboBox1.DataSource = elenco;

    Si tratta ovviamente di un esempio molto semplice, che sfrutta il data binding, ma se  ti interessa approfondire come funziona e come può aiutarti il data binding puoi iniziare da qui

    http://msdn.microsoft.com/en-us/library/c8aebh9k.aspx


    Laura La Manna Microsoft MVP - Visual C# http://lauralamanna.wordpress.com/


  • martedì 10 luglio 2012 15:11
     
     

    con al proprietà Sorted puoi ordinare solo in ordine crescente...

    da quanto ne sò, puoi ordinarti i dati in modo decrescente per poi aggiungerli nella combobox


    Saluti, Emanuele


  • martedì 10 luglio 2012 15:17
     
     

    Ciao Simone Gattinara,

    Salve a Tutti..

    C'è qualcuno che potrebbe aiutarmi con la Sort della ComboBox... 

    Devo ordinare gli elementi di una ComboBox in ordine Discendente !!

    un altra cosa , attenzione se il controllo combobox e associato ad un origine dati corri il rischio di un eccezzione ArgumentException come riportato qui .

    Ciao.


  • mercoledì 11 luglio 2012 08:31
     
      Contiene codice

    oppure se maneggi liste puoi anche usare il LINQ

    una cosa del tipo...

    List<string> elenco = new List<string>() { "d", "F", "a" };
    var query = (from s in elenco orderby s descending select s).ToList();

    Saluti, Emanuele

  • mercoledì 11 luglio 2012 21:55
     
      Contiene codice

    Ciao SimoneGattinara,

    restando in tema Linq aggiungo anche la possibilità di ordinamento mediante gli estension method e l'operatore OrderByDescending().

                List<string> elenco = new List<string>() { "d", "F", "a" };
                comboBox1.DataSource = elenco.OrderByDescending(order => order).ToList();

    Ciao.