Ich versuche derzeit, ein ObservableCollection
eines Objekts (im folgenden Beispiel: ObservableCollection<A>
) einem Feld in einer übergeordneten Klasse zuzuweisen, die ein ObservableCollection
einer Schnittstelle implementiert durch das Objekt (im Beispiel unten: public ObservableCollection<IOrderable> childModels
, wo A
implementiert IOrderable
).
Dies kann im folgenden zu sehen:
Zuweisen einer ObservableCollection eines Objekts zu einem Feld, das eine ObservableCollection einer Schnittstelle ist
public class A : IOrderable { }
public class B : IOrderable { }
public class Term
{
public ObservableCollection<A> aCollection { get; set; }
}
public class Year
{
public ObservableCollection<B> bCollection { get; set; }
}
public abstract class InfoListViewModelBase : ViewModelBase
{
public ObservableCollection<IOrderable> childModels { get; set; }
}
public class TermViewModel : InfoListViewModelBase
{
public TermViewModel(Term t)
{
this.childModels = t.aCollection;
}
}
public class YearViewModel : InfoListViewModelBase
{
public TermViewModel(Year y)
{
this.childModels = y.bCollection;
}
}
Das Problem ist, dass this.childModels = t.aCollection;
und this.childModels = y.bCollection;
beide nicht funktionieren, anstatt die Fehler "umwandeln können nicht implizit Typen ObservableCollection<A>
zu ObservableCollection<IOrderable>
" geben und „Can not implizit Typ umwandeln ObservableCollection<B>
zu ObservableCollection<IOrderable>
"
gibt es eine richtige Art zu ac Dieses gewünschte Ergebnis zwischen den Klassen finden?