2009-04-18 21 views
6

¿Cómo movería elementos en una lista de encuadernación en C#? Diga, mueva el último elemento añadido al frente o cambie con el elemento anterior.¿Reordenar elementos en BindingList en C#?

+0

método InsertItem es algo que debe leer. Supongo que te da lo que necesitas. – danish

Respuesta

3

Un BindingList tiene una propiedad Los productos que implementa IList <>

esta manera puede utilizar Insert() y RemoveAt()

+0

sí, gracias :) acaba de empezar a aprender C#, no pude resolverlo - le pregunté, y de repente pensé que fuera y cerré la pregunta :) – 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

¿Hay alguna forma de reordenar el 'BindingList' usando un comparador? No hay un método 'Sort 'expuesto en' BindingList'. Hay 'ApplySortCore' pero está' protected', not 'public'. – Dai

Cuestiones relacionadas