У меня есть три класса с общим родителем.Допустим, родитель - это животное, а дети - собака, кошка и попугай.
И у меня есть одна наблюдаемая коллекция, которая содержит коллекцию животных, с которыми работает пользователь.Коллекция содержит всех животных одного типа - пользователь работает либо со всеми собаками, либо со всеми кошками, либо со всеми попугаями.
Итак, я объявил ObservableCollection<Animal>
животных и, в зависимости от выбора пользователя, хочу изменить содержимое свойства животных наObservableCollection<Dog>
или ObservableCollection<Cat>
или ObservableCollection<PArrot>
.Поэтому не имеет значения, работает ли пользователь в настоящее время с собаками или кошками, но он может выбрать все общие действия животных.
Но это не работает.Кажется, я не могу присвоить ObservableCollection<Cat>
свойству типа ObservableCollection<animal>
.Я бы подумал, что это должно сработать, потому что animal это супертип cat, поэтому я могу назначить cat для переменной животного как обычно.
Почему я не могу это сделать и как я могу решить эту проблему?