我有三個類泛型列表轉換
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