我有三个类泛型列表转换
public class OSiteEquipment : IPlantItem
public class OSiteSubSystem : IPlantItem
public class OSiteComponent : IPlantItem
各自实现接口IPlantItem
在我的XAML我绑定到一个观察集合像
public ObservableCollection<IPlantItem> CurrentItems
有时我需要绑定CurrentItems
到收集OSiteEquipments,有时还收集到OSiteSubSystem
如果我尝试当我加载像这样
CurrentItems = this.siteDocument.Sitestructure.Equipments;
哪里Sitestructure.Equipments
是OSiteEquipment的可观察集合的视图,设置CurrentItems,编译说我不能从Observablecollection<IPlantItem>
转换为Observablecollection<OSiteEquipment>
是否有解决此问题的方法。我需要做出明确的转换
编辑
解决它,而不是定义CurrentItems作为的ObservableCollection我作为
object CurrentItems
我之所以做这一切并不是在一开始是我thougt我会销毁通知绑定,但它仍然正常工作。
为什么你想避免显式转换? – 2012-03-04 20:28:18
'Observablecollection'不是'Observablecollection '。所以当然编译器对象。 –
2012-03-04 20:30:28
看起来像'ObservableCollection'不是协变的,所以需要显式转换。 – knittl 2012-03-04 20:51:27