Ошибка при заполнении ObservableCollection - PullRequest
0 голосов
/ 09 мая 2011

У меня есть этот код:

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 '

1 Ответ

0 голосов
/ 09 мая 2011

Из-за разницы в типах этого нет. Вот ваши варианты:

  • Создайте коллекцию QuestionClusters, а не GuiQuestionClusters
  • Используйте цикл foreach, чтобы добавить элемент в список. Вам нужно будет создать объект и присвоить значение напрямую или использовать перегруженный конструктор, который принимает тип базового класса. Это в принципе не лучший дизайн, поскольку он может вызвать частичное назначение.
  • Вы можете исследовать использование метода наследования или расширения, чтобы обойти это
...