2011-05-09 99 views
0

我有這樣的代碼:錯誤填充的ObservableCollection

ObservableCollection<GuiQuestionCluster> clusters = new ObservableCollection<GuiQuestionCluster>(this.ExaminationViewModel.Examination.QuestionClusters); 

所以,this.ExaminationViewModel.Examination.QuestionClustersQuestionCluster的類型。 QuestionCLusterGuiQuestionCluster的超類。我寫的代碼不起作用,它會給出錯誤。但我想知道我是如何解決這個問題的,是否有一個小技巧呢?

第一個錯誤:

Error 1 The best overloaded method match for 'System.Collections.ObjectModel.ObservableCollection.ObservableCollection(System.Collections.Generic.IEnumerable)' has some invalid arguments

二:

Error 2 Argument 1: cannot convert from 'System.Collections.ObjectModel.ReadOnlyCollection' to 'System.Collections.Generic.IEnumerable'

+1

請提供具體的錯誤信息。 – 2011-05-09 12:38:27

+0

我編輯了它.... – Ruben 2011-05-09 12:40:40

回答

0

有因爲類型差別不招這個。這裏是你的選擇:

  • 使它成爲一個QuestionClusters集合,而不是GuiQuestionClusters
  • 使用foreach循環添加項目到列表中。您將不得不直接創建對象並賦值,或者使用帶有基類類型的重載構造函數。原則上這不是最好的設計,因爲它可能導致部分分配。
  • 您可以探索通過繼承或擴展方法來解決此