2013-03-08 7 views
8

लिए एक सरणी परिवर्तित एक सी # आवेदन में निम्नलिखित सारणी का प्रयोग किया जाता है:एक ObservableCollection

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

हालांकि मैं एक ObservableCollection<CProject> रूप projectArray की जरूरत है। ऐसा करने का अनुशंसित तरीका क्या होगा? अब तक मैं निम्नलिखित कथन का उपयोग कर रहा हूं:

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)); 
} 
में आइटम जोड़ना होगा जो
संबंधित मुद्दे