2009-04-18 4 views
6

Comment déplacer des éléments dans une BindingList en C#? Dites, déplacez le dernier élément ajouté vers l'avant ou permutez avec l'élément précédent?Réorganisation des éléments dans BindingList en C#?

+0

méthode InsertItem est quelque chose que vous devriez lire. Je suppose que cela vous donne ce dont vous avez besoin. – danish

Répondre

3

Un BindingList a une propriété Items qui implémente IList <>

Vous pouvez donc utiliser Insert() et RemoveAt()

+0

oui, merci :) juste commencé à apprendre C#, ne pouvait pas comprendre - demandé, et soudainement figuré si dehors et est venu fermer la question :) – flamey

5
static void Main(string[] args) 
    { 
     BindingList<string> list = new BindingList<string>(); 
     list.Add("Hello"); 
     list.Add("World"); 
     list.Add("Test"); 

     MoveLastToFirst(list); 

     Swap(list, 1, 2); 

     foreach (string s in list) 
      Console.WriteLine(s); // Prints Test World Hello 
    } 

    private static void MoveLastToFirst<T>(BindingList<T> list) 
    { 
     int cnt = list.Count; 
     T temp = list[cnt - 1]; 
     list.RemoveAt(cnt - 1); 
     list.Insert(0, temp); 
    } 

    private static void Swap<T>(BindingList<T> list, int first, int second) 
    { 
     T temp = list[first]; 
     list[first] = list[second]; 
     list[second] = temp; 
    } 
+0

Y at-il un moyen de réorganiser le 'BindingList' en utilisant un comparateur? Il n'y a pas de méthode 'Sort' exposée sur' BindingList'. Il y a 'ApplySortCore' mais c'est' protected', pas 'public'. – Dai