C# 如何将ObservableCollection转换为MyCollection:ObservableCollection<;MyClass>;
我有一个自定义的MyClass可观察集合C# 如何将ObservableCollection转换为MyCollection:ObservableCollection<;MyClass>;,c#,linq,casting,observablecollection,C#,Linq,Casting,Observablecollection,我有一个自定义的MyClass可观察集合 class MyClass { } class MyObservablECollection : ObservableCollection<MyClass> { } class-MyClass { } MyObservablECollection类:ObservableCollection { } 现在我正在创建它们的对象: ObservableCollection<MyClass> _
class MyClass
{
}
class MyObservablECollection : ObservableCollection<MyClass>
{
}
class-MyClass
{
}
MyObservablECollection类:ObservableCollection
{
}
现在我正在创建它们的对象:
ObservableCollection<MyClass> _varObsCollection = new ObservableCollection<MyClass>();
MyObservablECollection _varMyObservablECollection = new MyObservablECollection();
_varMyObservablECollection = _varObsCollection;
var _obsvleCollection = new ObservableCollection<MyCollection>(_myVar);
MyCollection _tempCollection = new ObservableCollection<MyCollection>(_myVar);
ObservableCollection\u varObsCollection=新的ObservableCollection();
MyObservablECollection_varMyObservablECollection=新的MyObservablECollection();
_VarmObservableCollection=\u varObsCollection;
var _obsvleCollection=新的可观测集合(_myVar);
MyCollection _tempCollection=新的可观测集合(_myVar);
无法将类型“System.Collections.ObjectModel.ObservableCollection”隐式转换为“MyObservablECollection”
我知道我们不能将父类对象(ObservableCollection
)分配给子类MyObservablECollection
但是有没有办法我可以把它们扔出去?你把它弄颠倒了,这就是工作情况:
ObservableCollection<MyClass> _tempCollection = new MyCollection(_myVar);
observedcollection\u tempCollection=newmycollection(\u myVar);
MyCollection
是observedcollection
但是observedcollection
不一定是MyCollection
编辑:我知道你试图维持同样的秩序。
在这种情况下-不可能,因为继承是如何工作的。通常,如果您想执行类似操作,请为
MyObservableCollection
创建一个构造函数,该构造函数将ObservableCollection
作为参数,然后构造您想要的对象。没有朝这个方向强制转换的概念,仅仅是因为您需要不知从何处创建信息(例如,子类型上可能存在的所有额外内容)——这就是为什么您需要显式代码来实现这一点。您可能可以通过在类中添加强制转换运算符来实现,但我个人会选择构造函数方法。我在问题中提到,不能将父对象分配给子对象,但是,如果有一种方法可以工作,但不是OP想要做的。@Simsons您能详细说明为什么希望将ObservableCollection
实例设置为MyCollection
var吗?