2013-03-08 99 views
8

在C#應用下面陣列被用來:轉換數組一個ObservableCollection

CProject[] projectArray = this.proxy.getProjectList(username, password); 

但是我需要projectArray作爲ObservableCollection<CProject>。推薦的方法是什麼?到目前爲止,我正在使用以下語句:

ObservableCollection<CProject> projectList = new ObservableCollection<CProject>(projectArray); 

您還會使用此語句還是您會推薦其他方式?

回答

8

IEnumerable開始建立一個新的集合就是做這件事的方法。

1

恕我直言,建立一個新的集合,每次你想添加對象的範圍是不好,而我會按照下面的設計。

建立一個類繼承的ObservableCollection,這樣您就可以訪問項目是受保護的屬性,然後創建一個方法的AddRange將項目添加到它

public class MyObObservableCollection<T> : ObservableCollection<T> 
{ 
    public void AddRange(IEnumerable<T> items) 
    { 
     foreach (var item in items) 
     { 
      this.Items.Add(item); 
     } 

    } 
OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Add)); 
} 
相關問題