2009-04-18 106 views
6

我將如何移動C#中的BindingList中的項目?說,將最後添加的項目移動到前面,或者與之前的項目交換?在C#中的BindingList中重新排序項目?

+0

InsertItem方法是你應該閱讀有關的項目屬性。我想它會給你你所需要的。 – danish 2009-04-18 18:57:34

回答

3

一個的BindingList有實現IList <>

所以你可以使用Insert()RemoveAt()

+0

是的,謝謝:)剛開始學習c#,找不到它 - 問,突然想通了,如果出來,並接近問題:) – flamey 2009-04-18 19:03:12

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

有沒有辦法使用比較器重新排序`BindingList`? `BindingList`上沒有`Sort`方法。有`ApplySortCore`,但它是`protected`,而不是`public`。 – Dai 2017-02-25 02:39:48