填充可观察集合时出错

本文关键字:出错 集合 观察 填充 | 更新日期: 2023-09-27 17:55:51

我有这个代码:

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

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

第一个错误:

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

第二:

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

填充可观察集合时出错

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

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