Есть интерфейс:
public interface IFoo {
}
Пользовательский элемент управления Silverlight имеет коллекцию IFoo
экземпляров:
public ObservableCollection<IFoo> Items { get; set; }
Существует абстрактный класс, который реализует интерфейс:
abstract public class Foo : IFoo {}
И класс, который в дальнейшем происходит от этого:
public class DerivedFoo : Foo {}
После всего этого я пытаюсь добавить экземпляры DerivedFoo в коллекцию элемента управления через XAML, но получаю сообщение об ошибке, что DerivedFoo не относится к типу IFoo и не может использоваться в универсальной коллекции.
Я нашел сообщение на форуме, в котором говорилось, что это ошибка в Silverlight 3, но она будет исправлена (я использую Silverlight 4). Это все еще ошибка или я говорю об этом неправильно?
Обновление:
Мой код дома, и я на работе, поэтому я не могу опубликовать фактический XAML, но по памяти это было примерно так:
<my:Thing>
<my:Thing.Items>
<my:DerivedFoo ... />
</my:Thing.Items>
</my:Thing>