2013-03-08 20 views
8

in einer C# Anwendung Umwandeln die folgende Anordnung verwendet:ein Array zu einem ObservableCollection

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

Jedoch muß ich die projectArray als ObservableCollection<CProject>. Was wäre der empfohlene Weg, dies zu tun? Bisher verwende ich die folgende Aussage:

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

Würden Sie auch diese Aussage verwenden oder würden Sie andere Wege empfehlen?

Antwort

8

Erstellen Sie eine neue Sammlung von einem IEnumerable, wie Sie es getan haben, ist der Weg, es zu tun.

1

IMHO, Erstellen einer neuen Sammlung jedes Mal, wenn Sie eine Reihe von Objekten hinzufügen möchten, ist nicht gut, eher würde ich unter Design folgen.

eine Klasse Erstellen von ObservableCollection vererben, so dass Sie Eigenschaft Items zugreifen können, die geschützt wird und dann eine AddRange Methode erstellen, welche Elemente in Beitrag leisten werden

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)); 
} 
Verwandte Themen