填充可观察集合时出错
本文关键字:出错 集合 观察 填充 | 更新日期: 2023-09-27 17:55:51
我有这个代码:
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'
由于类型差异,这没有任何技巧。以下是您的选择:
- 使其成为 QuestionClusters
- 集合,而不是 GuiQuestionClusters
- 使用 foreach 循环将项添加到列表中。您必须直接创建对象并赋值,或者使用采用基类类型的重载构造函数。这原则上不是最好的设计,因为它可能会导致部分分配。
- 您可以探索使用继承或扩展方法来解决此问题