0

我有这个代码:

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

所以,this.ExaminationViewModel.Examination.QuestionClusters属于QuestionCluster. QuestionCLuster是 的超类GuiQuestionCluster。我写的代码不起作用,它给出了错误。但我想知道我如何解决这个问题,有什么小技巧吗?

第一个错误:

错误 1 ​​'System.Collections.ObjectModel.ObservableCollection.ObservableCollection(System.Collections.Generic.IEnumerable)' 的最佳重载方法匹配有一些无效参数

第二:

错误 2 参数 1:无法从 'System.Collections.ObjectModel.ReadOnlyCollection' 转换为 'System.Collections.Generic.IEnumerable'

4

1 回答 1

0

由于类型差异,这没有任何技巧。以下是您的选择:

  • 使其成为 QuestionClusters 集合而不是 GuiQuestionClusters
  • 使用 foreach 循环将项目添加到列表中。您必须直接创建对象并赋值,或者使用采用基类类型的重载构造函数。这原则上不是最好的设计,因为它可能导致部分分配。
  • 您可以探索使用继承或扩展方法来解决此问题
于 2011-05-09T12:44:32.550 回答