Tuesday, March 15, 2011

Reordering items in BindingList in C#?

How would I move items in a BindingList in C#? Say, move last added item to the front, or swap with previous item?

From stackoverflow
  • A BindingList has an Items property that implements IList<>

    So you can Use Insert() and RemoveAt()

    flamey : yes, thank you :) just started learning c#, couldn't figure it out -- asked, and suddenly figured if out and came close the question :)
  • InsertItem method is something you should read about. I guess it gives you what you need.

  •     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 comments:

Post a Comment